我在 Storyboard 中制作了一个应用程序。我想要一个教程类型的 View 。我决定使用自由形式的 View Controller ,并用 600x600 的 View 填充它,这些 View 算作页面。我遇到的问题是,当我有一个 UI 按钮动画到下一页时,在可见 View 之外创建的按钮似乎不起作用。我什至移动了一个 View ,所以按钮是半可见的,当我移动 View 时,只有一半的按钮有效。
这是我的下一页代码:
- (void)nextPage {
if (scrolling) return;
scrolling = YES;
[UIView animateWithDuration:0.3 animations:^{
CGRect frame = self.tutorialView.frame;
frame.origin.x -= 50; //frame.size.width;
[self.tutorialView setFrame:frame];
}];
scrolling = NO;
}
出于测试目的,我目前只移动了 50 像素而不是整个页面。
出于测试目的,我已将其启动到一半,只有一半的按钮有效。我已经从另一个 View 顶部的第二个 View 开始它一半可见,并且发生了同样的事情(只有一半的按钮有效)。否则,当我在第一个 View 上点击下一个按钮时,第二个 View 上的按钮不起作用(在初始 View 之外创建的按钮)。
Best Answer-推荐答案 strong>
View 不会在超出其父 View 范围的情况下接收触摸事件。您需要增加按钮的 super View 的大小。
您可以通过设置 clipsToBounds = YES 来可视化此行为 - 然后您只会看到按钮的可触摸区域。
(你可以 override this behavior ,但你可能不应该这样做。)
关于ios - UIButton 创建的外部 View 不起作用,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28787926/
|