我是按代码添加图像视图,并将图像宽高比设置为ScaleAspectFit。
我能够工作的是图像的顶部空间/约束。我希望将图像设置在顶部的特定空间,同时保持ScaleAspectFit。
当您在图像之间滑动时,所有图像都具有不同的顶部位置,看起来很奇怪。
我的结构是页面视图控制器>滚动视图。为了向图像添加缩放。
添加图片的代码:
imageView.frame = CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height)
imageView.contentMode = .ScaleAspectFit
imageView.url = imageFileName?.toURL()
imageView.userInteractionEnabled = true
scrollView.addSubview(imageView)
这是一个显示问题的打印屏幕。我想要做的是始终使顶部的黑色空间与所有图像的高度相同。所以它们都有相同的顶部空间。
答案 0 :(得分:1)
您可以使用.ScaleAspectFit
来保证图片始终完全填充视图,而不是使用.ScaleAspectFill
。那么没有一个图像视图顶部会有不均匀的空白区域。
如果您必须具有.ScaleAspectFit
行为,那么您可以计算图像的“纵横拟合”框架并手动设置其框架以使其适合并且顶部对齐:
import AVFoundation
...
let aspectRatio = imageView.image.size.width / imageView.image.size.height
let aspectRect = AVMakeRectWithAspectRatioInsideRect(aspectRatio, scrollView.bounds)
imageView.frame = CGRectMake(0, 0, aspectRect.size.width, aspectRect.size.height)
答案 1 :(得分:0)
将另一个UIView添加到滚动视图的顶部。调整你想要的高度。布局约束是否有效。