【发布时间】:2013-01-09 20:11:46
【问题描述】:
我故意在视图容器中放置了 2 个视图(表视图),它们部分重叠。视图 B 与视图 A 的大约 50% 重叠。
当我以编程方式移动视图 B 使其不再重叠时,视图 A 中先前重叠的区域不会响应触摸事件,也就是说,约 50% 不会。只有最初没有重叠的区域才会这样做。此外,在视图 B 中,现在在父视图中占用新空间的部分不响应触摸事件,只响应恰好占用旧区域的视图部分。
我用来移动视图的代码很简单:
UIView* viewB = [self.childViewControllers.lastObject view];
CGRect rect = viewB.frame;
rect.origin.x += 200;
[UIView animateWithDuration:0.2 animations:^{
viewB.frame = rect;
}];
在视觉上,视图会移动,但触摸区域不会。
我使用 iOS 6 中新的故事板“容器视图”机制来最初放置视图。
我不知道为什么会这样。有什么想法吗?
谢谢。
【问题讨论】:
-
我使用的动画块与问题无关。事实上,我根本不需要动画块,问题仍然存在。如果我希望在动画期间进行用户交互,建议的选项很有用。这不像触摸事件不起作用,它们在视图的一部分上不起作用 - 它最初重叠的部分。就好像我的应用仍然认为我的视图没有移动一样。
标签: ios view containers