'静态'UIButton ontop UIScrollview?

我想要达到一个相当简单的效果。 它上面有一个scrollView和一个静态按钮。 到目前为止没有问题。 不幸的是,如果我想滚动视图“槽”按钮,就会出现问题。 所以开始拖动按钮会影响按钮,而不是滚动视图。

任何想法如何实现?

非常感谢!

我认为这种方法是行不通的,因为touchesBegan在UIScrollView中被弃用了...(这个信息是真的吗?)

不是解决方案:-)

@implementation MySuperButton

+ (id)buttonWithFrame:(CGRect)frame {
    return [[[self alloc] initWithFrame:frame] autorelease];
}

- (id)initWithFrame:(CGRect)frame {
    if (self == [super initWithFrame:frame]) {
        NSLog(@"initWithFrame");
    }
    return self;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
    [self.nextResponder touchesBegan:touches withEvent:event];
    NSLog(@"[self nextResponder]: %@", [self nextResponder]);
}

@end

不幸的是,这还不行。 我认为下一个响应者是我的UIView而不是我的UIScrollView。 有任何想法吗?

如果我的viewcontroller是下一个响应者,将触摸传递给scrollView,也没有任何反应。


将按钮不添加到滚动视图,而是添加到其父视图,并且一切都应该工作得很好。 直接触摸按钮将传递到按钮,触摸背景(滚动视图)将传递到滚动视图。

由于该按钮不是滚动视图的子视图,因此不会随背景移动(我认为您的意思是静态的)。


我从来没有玩过很多触摸事件,但我会尽力帮助我了解基本的理解。

尝试将按钮的exclusiveTouch设置为NO。 不确定,但也许启用Multitouch为YES。

如果这不起作用,我会尝试可能继承UIButton,重写触摸事件并将它们传递给[self touchResponder]之前/之后[super touchEventX:]?


这很难理解你想要达到的目标。 你想滚动按钮还是不滚动?

所以开始拖动按钮会影响按钮,而不是滚动视图。

目前尚不清楚这是你想要的行为还是你想改变的行为。

如果是前者,Eiko的回答是正确的,如果是后者,则应该添加该按钮作为滚动视图的子视图,并在scrollViewDidScroll:时更新其框架。 我从来没有尝试过这个,但它在理论上是有效的。

链接地址: http://www.djcxy.com/p/40521.html

上一篇: ‘static‘ UIButton ontop UIScrollview?

下一篇: pass scroll event from uibutton to uiscrollview