在an iPhone word game我有一个UIScrollView
(保持UIImageView
)和7可拖动定制UIView
小号最初放置在底部(和外滚动视图):viewDidLayoutSubviews的touchesBegan之后调用 - 一次又一次
在单个ViewController.m我已覆盖viewDidLayoutSubviews
,以便始终设置滚动视图的zoomScale
- 使UIImageView
正好填充屏幕宽度的100%。
这种效果很好 - 适用于纵向和横向模式。当应用程序刚刚开始:
但是我的问题是,当我第一次捏/缩放/双击滚动视图,然后移动七Tile.m之一意见:
突然(并非每次)viewDidLayoutSubviews
之后调用touchesBegan
。
这将重置滚动视图的缩放 - 意外地为用户。
我的问题是否有任何方法可以禁用此行为?
是否有可能阻止viewDidLayoutSubviews
父母的调用,当其子UIView
被触摸/拖动?
UPDATE:
我搬到从viewDidLayoutSubviews
的zoomScale
设置代码didRotateFromInterfaceOrientation
和滚动视图缩放现在是好的,但其contentOffset
重置为{0,0}
,当(并不总是)我拖砖 - 即滚动视图突然跳跃,应用程序无法使用。
加入以下viewDidLoad
并没有帮助:
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)])
self.automaticallyAdjustsScrollViewInsets = NO;
+1谢谢。我已经将'zoomScale'设置代码移动到'didRotateFromInterfaceOrientation'并且滚动视图缩放现在可以,但是当(不是总是)我拖动一个Tile时,'contentOffset'重置为'{0,0}' - 即滚动视图突然跳跃,应用程序无法使用。 –
@AlexanderFarber为scrollview创建子类并查看谁将其设置为{0,0}。我甚至不得不锁定我的滚动视图以忽略来自不需要的系统决策的滚动。但是你必须弄清楚谁在做这件事。 –
@AlexanderFarber那是什么造成了它? –