放大 ScrollView 在 iOS 4 中有效,但在 iOS 5 和 iOS5.1 中崩溃

Posted

技术标签:

【中文标题】放大 ScrollView 在 iOS 4 中有效,但在 iOS 5 和 iOS5.1 中崩溃【英文标题】:Zooming in ScrollView works in iOS4 but crash in iOS5 and iOS5.1 【发布时间】:2012-03-15 10:17:12 【问题描述】:

我有一个应用程序在 ios4.3 中运行良好,但在 iOS5 和 iOS5.1 中崩溃(错误如下所述)。 问题只是滚动视图的缩放。 我在一个 UIView 中有滚动视图(这个 UIView 除了滚动视图还有其他东西(UILabels,UIButtons,...)),我只想缩放滚动视图。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)aScrollView 

    return MyScrollView;


错误信息:

*由于未捕获的异常'NSGenericException'而终止应用程序,原因:'从viewForZoomingInScrollView返回的视图:必须是滚动视图的子视图。它不能是滚动视图本身。'

【问题讨论】:

【参考方案1】:

异常已经告诉你该怎么做。为滚动视图创建另一个UIView 子视图并将滚动视图的所有当前子视图放在那里,然后在viewForZoomingInScrollView 中返回那个。

【讨论】:

我能以编程方式做到这一点(创建另一个视图并将所有滚动视图放在当前位置)吗?或者最好的方法是在界面生成器上做? 两者都可以。只需遍历所有滚动视图子视图并将它们添加到中间视图即可。

以上是关于放大 ScrollView 在 iOS 4 中有效,但在 iOS 5 和 iOS5.1 中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

嵌套的 ScrollView - 缩放后无法滚动到新照片

将 ScrollView 放大到特定坐标 (IPAD)

当用户在没有代码的情况下将设备旋转为横向时,如何在 ScrollView 中显示图像?

Android -- 自定义ScrollView实现放大回弹效果

ScrollView 中的初始 SwiftUI 动画

iOS 7 缩放不能在具有 AutoLayout 的 ScrollView 中工作,但在 iOS8/9 中工作