当我尝试滚动或缩放时,没有任何反应。
...
我有一个我在 viewDidLoad()中设置的scrollview
outletCatalogDetailsScrollViewImage.delegate = self;
outletCatalogDetailsScrollViewImage.minimumZoomScale = 1.0;
outletCatalogDetailsScrollViewImage.maximumZoomScale = 10.0;
...
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
var res: UIView? = nil;
if scrollView == outletCatalogDetailsScrollViewImage {
res = self.outletCatalogDetailsImage;
}
return res;
}
在这个滚动视图中,我有了imageview。
为了避免在XCode设计器中出现警告,我在UIScrollView中定义了以下约束:
Outlet Catalog Details Image.Center Y = Superview.Center Y
Outlet Catalog Details Image.Center X = Superview.Center X
bottom = Outlet Catalog Details Image.bottom
trailing = Outlet Catalog Details Image.trailing
Outlet Catalog Details Image.top = top
Outlet Catalog Details Image.leading = leading
在主视图中:
Outlet Catalog Details Scroll View Image.leading = Navigation Bar.leading
trailingMargin = Outlet Catalog Details Scroll View Image.trailing
...
我也有一个相同的高度"滚动视图与下方另一个视图之间的高度约束。
我怀疑我的约束是zoom / pan无效的原因。我希望我错过了配置约束的更好方法
答案 0 :(得分:1)
你的怀疑是正确的。约束是问题。
您提到您必须避免在故事板中发出警告,因此您可以放置这些限制。但是,这些限制是有问题的。主要是这4个:
bottom = Outlet Catalog Details Image.bottom
trailing = Outlet Catalog Details Image.trailing
Outlet Catalog Details Image.top = top
Outlet Catalog Details Image.leading = leading
图像有自己的宽度和高度,为什么它必须被约束到滚动视图的宽度和高度?滚动视图的想法是通过更改其边界来移动其所有子视图。滚动视图实际上并不比屏幕大,它的子视图是。
你怎么解决这个问题?您希望没有故事板警告,但您不想要这些限制。你可以做以下两件事之一: