在我的程序中,我将 a 配置UIView
为放置在多个UIBUtton
s 上。这样您就可以在视图中平移并让按钮移动以及选择按钮本身。但是,当按钮位于 this 下方时,无法选择它们UIView
。有人知道在这些条件下如何配置 aUIButton
吗?userInteractionEnabled
问问题
1954 次
2 回答
0
与其更改 UIButton 的 userInteractionEnabled 的值,不如将 UIButton 顶部的 UIView 的 userInteractionEnabled 值设置为 no。
当 UIView 的 userInteractionEnabled 设置为 YES 时,UIView 正在“吃掉”事件。然后该按钮将永远不会收到任何事件。
于 2012-06-11T07:24:02.057 回答
0
这种技术对我有用 - 警告:我只是在它没有编译的情况下输入了它,或者它是作为起点给出的。
- 创建按钮并将它们放置在视图层次结构的顶部(即它们正常交互并响应点击的位置,在 UIView 顶部)
创建按钮时 - 在数组中保留对它们的引用。
NSMutableArray* arrayOfPeskyButtons;
记录按钮框架
NSMutableArray* arrayOfPeskyFrames = [NSMutableArray mutableArray]; for ((UIButton*)button in arrayOfPeskyButtons) { [arrayOfPeskyFrames addObject:[NSValue valueWithCGRect:button.frame]; }
当您的应用响应 UIView 上的操作时 - 平移或将其更改为 UIScrollView(可能是最好的顺便说一句),然后相应地移动按钮的框架,以便它们在用户看来是固定的。
我已经使用这种技术来创建位于滚动视图顶部的按钮“叠加层”,并且效果出奇的好。只需在 scrollView 委托方法中。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
记下滚动视图的偏移量,并根据滚动视图的偏移量相应地调整按钮的每个框架
CGPoint offset = scrollView.contentOffset;
遍历按钮数组并移动它们。
int index = 0;
for ((UIButton*)button in arrayOfPeskyButtons)
{
CGRect originalFrame = [[arrayOfPeskyFrames objectAtIndex:index]CGRectValue];
CGRect currentFrame = button.frame;
//adjust frame
//e.g.
currentFrame.origin.x = originalFrame.origin.x + offset.x;
button.frame = currentFrame.;
index++;
}
于 2012-06-11T07:54:45.397 回答