在一个iPhone文字游戏中,我有一个
这很有效 - 无论是纵向还是横向模式。当应用程序刚启动时也是如此。
有时会突然调用
这会意外地重置滚动视图的缩放,给用户带来不便。
我的问题是,是否有任何方法可以禁用此行为?
是否可能在触摸/拖动其子
更新:
我已将
UIScrollView
(包含UIImageView
),并且最初放置在底部(并且在滚动视图之外)的7个可拖动的自定义UIView
:
viewDidLayoutSubviews
方法,以便它始终设置滚动视图的zoomScale
值,使UIImageView
恰好填充屏幕宽度的100%。这很有效 - 无论是纵向还是横向模式。当应用程序刚启动时也是如此。
有时会突然调用
touchesBegan
后的viewDidLayoutSubviews
。这会意外地重置滚动视图的缩放,给用户带来不便。
我的问题是,是否有任何方法可以禁用此行为?
是否可能在触摸/拖动其子
UIView
时防止父级调用viewDidLayoutSubviews
?更新:
我已将
zoomScale
设置代码从viewDidLayoutSubviews
移动到didRotateFromInterfaceOrientation
,现在滚动视图的缩放正常了,但是它的contentOffset
被重置为{0,0}
,当我拖动Tile时(不总是)-即滚动视图突然跳动,应用程序无法使用。
将以下代码添加到viewDidLoad
并没有起到帮助作用:
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)])
self.automaticallyAdjustsScrollViewInsets = NO;
zoomScale
设置代码移动到didRotateFromInterfaceOrientation
中,现在滚动视图缩放正常了,但是当(不总是)我拖动一个 Tile 时,contentOffset
会被重置为{0,0}
,也就是说滚动视图会突然跳动,应用程序无法使用。 - Alexander Farber