在我的程序中,我已将UIView
配置为放置在多个UIBUtton
上。这样您就可以平移视图并按下按钮以及选择按钮本身。但是,当它们位于此UIView
下方时,无法选择按钮。有人在UIButton
userInteractionEnabled
处于这些条件下时知道如何配置它们吗?
答案 0 :(得分:0)
您应该将UIBut顶部的UIView的userInteractionEnabled值设置为no,而不是更改UIButton的userInteractionEnabled的值。
当UIView的userInteractionEnabled设置为YES时,UIView正在“吃掉”事件。该按钮将永远不会收到任何事件。
答案 1 :(得分:0)
这项技术对我有用 - 警告:我只是在它中输入了这个未编译或nuthin它是作为起点给出的。
创建按钮时 - 在数组中保留对它们的引用。
NSMutableArray * arrayOfPeskyButtons;
记录按钮帧
NSMutableArray* arrayOfPeskyFrames = [NSMutableArray mutableArray];
for ((UIButton*)button in arrayOfPeskyButtons)
{
[arrayOfPeskyFrames addObject:[NSValue valueWithCGRect:button.frame];
}
当您的应用响应UIView上的操作 - 平移或者您将其更改为UIScrollView(可能是最佳btw)时,然后相应地移动按钮的框架,使它们看起来固定在用户的位置
我已经使用这种技术来创建位于滚动视图顶部的“叠加”按钮,它的效果非常好。只需在scrollView委托方法中。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
记录scrollviews偏移并相应调整按钮的每个帧,具体取决于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++;
}