【发布时间】:2016-06-09 00:03:57
【问题描述】:
我正在尝试检查传递给 ViewController 的字典是否具有指向图像的链接。 如果有链接,我想显示图片,使用 AlamofireImage。
如果没有,那么只需从 scrollView 中删除 UIImageView,这样图像下方的其他项目就会粘在屏幕顶部。
设置如下:
UIScrollView
-> UIView
--> UIImageView
--> UILabel(标题的一些短文本)
--> UILabel(一些使视图可滚动的内容的长文本)
我已经通过 Interface Builder 和 Auto Layout 设置了我的视图,如下所示:
UIImageView:上、左、右、下约束,高宽比为 1:1 没有特定的高度/宽度
UILabel:top(需要优先级)图片,top(高优先级)top-layout-guide,右、左、下约束
第二个UILabel:上、左、右、下约束
ViewDidLoad 内部
if let imageURLString = item["imageLink"] as? String {
let imageURL = NSURL(string: imageURLString)!
image.af_setImageWithURL(imageURL, placeholderImage: nil, filter: nil, imageTransition: .CrossDissolve(2), runImageTransitionIfCached: true, completion: nil)
}
else {
self.image.removeFromSuperview()
self.scrollView.setNeedsLayout()
}
使用此代码,当有链接时,它会加载图像并且一切都显示良好,而不会弄乱滚动视图。但是从 scrollView 中删除它会阻止 scrollView 能够滚动。即使滚动条指示器出现并且视图“尝试”滚动,但一切都被冻结了!
【问题讨论】:
标签: ios swift uiscrollview autolayout