我在UIImageView中无法让图片按正确的比例适应,这让我很苦恼。
最初从plist插入到核心数据中的所有图像都具有正确的宽高比,但是随着应用程序添加图像(从现有图像库中),三个视图中的两个视图中的图像似乎比视图本身更大,因此仅显示照片的左上角。 在下面的屏幕截图中,表格的顶行显示通过plist添加的图像,下面两行(MY RECORDS)显示未限制于视图的照片。 上述视图中的单元格是按照通常的方式创建的,然后在其自己的方法中进行配置,其中定义了其属性。
但是图片不会自动缩放,也不会在imageView的边界内裁剪。最初加载的图像(如熊)不需要设置contentMode或clipsToBounds。
我在另一个视图控制器(称为VC2)中遇到了同样的问题,但这个视图是使用storyboard定义的。我有一个UIImage视图,它被限制在一个具有固定大小约束的UIView的所有边缘上。UIImage视图被设置为Aspect Fit,但当我从设备库设置一张图片时,它看起来像上面的图片-纵横比正确,但只显示了图片的顶部角落。 在另一个视图中,我几乎与VC2具有相同的故事板布局,但在这里它按预期工作。我看不出任何约束、属性方面的区别,并且使用的是相同的照片(来自库)。
最初从plist插入到核心数据中的所有图像都具有正确的宽高比,但是随着应用程序添加图像(从现有图像库中),三个视图中的两个视图中的图像似乎比视图本身更大,因此仅显示照片的左上角。 在下面的屏幕截图中,表格的顶行显示通过plist添加的图像,下面两行(MY RECORDS)显示未限制于视图的照片。 上述视图中的单元格是按照通常的方式创建的,然后在其自己的方法中进行配置,其中定义了其属性。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
self.configureCell(cell, indexPath: indexPath)
return cell
}
func configureCell(cell: UITableViewCell, indexPath: NSIndexPath)
{
let record = fetchedResultsController.objectAtIndexPath(indexPath) as! Record
cell.textLabel!.text = record.subject
cell.detailTextLabel!.text = record.shortDetails
if let imageArray = imagesForRecord(record)
{
if imageArray.count > 0
{
cell.imageView?.contentMode = .ScaleAspectFit
cell.imageView?.clipsToBounds = true
cell.imageView?.image = imageArray[Int(record.featureImageIndex)]
}
}
}
但是图片不会自动缩放,也不会在imageView的边界内裁剪。最初加载的图像(如熊)不需要设置contentMode或clipsToBounds。
我在另一个视图控制器(称为VC2)中遇到了同样的问题,但这个视图是使用storyboard定义的。我有一个UIImage视图,它被限制在一个具有固定大小约束的UIView的所有边缘上。UIImage视图被设置为Aspect Fit,但当我从设备库设置一张图片时,它看起来像上面的图片-纵横比正确,但只显示了图片的顶部角落。 在另一个视图中,我几乎与VC2具有相同的故事板布局,但在这里它按预期工作。我看不出任何约束、属性方面的区别,并且使用的是相同的照片(来自库)。
我看不到任何区别,也无法想象如何从这里进行调试。毫无疑问,我对Aspect Fit或其应用方式存在一些简单的误解。
imageView.frame
? 在某些图像上显示为180x140,就像你的约束一样吗? 这虽不能解决问题,但可以让你朝着正确的方向前进。 要么排除 imageView 的框架发生了什么问题,要么你知道这是由其他原因引起的错误。 - NSGangster