Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone ‘;静态‘;UIScrollview上的UIButton?_Iphone_Uiscrollview_Uibutton_Touches - Fatal编程技术网

Iphone ‘;静态‘;UIScrollview上的UIButton?

Iphone ‘;静态‘;UIScrollview上的UIButton?,iphone,uiscrollview,uibutton,touches,Iphone,Uiscrollview,Uibutton,Touches,我想达到一个相当简单的效果。滚动视图及其上方的静态按钮。 到目前为止还没有问题。不幸的是,如果我想通过按钮滚动视图,就会出现问题。因此,开始在按钮内拖动将影响按钮,而不是滚动视图 关于如何实现这一点有什么想法吗 非常感谢 我认为这种方法行不通,因为TouchesBegind在UIScrollView中不受欢迎…(这是真的吗?) 不是解决方案:-) 不幸的是,这还不起作用。我认为下一个响应者是my UIView而不是my UIScrollView。有什么想法吗 如果下一个响应者my viewcon

我想达到一个相当简单的效果。滚动视图及其上方的静态按钮。 到目前为止还没有问题。不幸的是,如果我想通过按钮滚动视图,就会出现问题。因此,开始在按钮内拖动将影响按钮,而不是滚动视图

关于如何实现这一点有什么想法吗

非常感谢

我认为这种方法行不通,因为TouchesBegind在UIScrollView中不受欢迎…(这是真的吗?)

不是解决方案:-)

不幸的是,这还不起作用。我认为下一个响应者是my UIView而不是my UIScrollView。有什么想法吗


如果下一个响应者my viewcontroller将触摸传递到scrollView,则不会发生任何事情。

将整个滚动视图向下移动按钮的高度,并将其高度收缩相同的量。然后将按钮放在滚动视图的上方,这样它就不是滚动视图的子视图。

将按钮添加到父视图,而不是滚动视图,一切都会正常工作。直接触摸按钮将传递到按钮,触摸背景(滚动视图)将传递到滚动视图


由于按钮不是滚动视图的子视图,因此它不会随背景移动(我想你是指静态)。

我从来没有玩过很多触摸事件之类的东西,但无论如何,我会尝试帮助我了解基本情况

尝试将按钮设置为“否”。不确定,但也可以将enableMultitouch设置为“是”


如果这不起作用,我可能会尝试将UIButton子类化,覆盖触摸事件并在[super touchEventX:]之前/之后将它们传递给[self nextResponder]?

很难理解您想要实现什么。是否要滚动浏览该按钮

因此,开始在按钮内拖动将影响按钮,而不是滚动视图

不清楚这是你想要的行为还是你试图改变的行为


如果前一个Eiko的答案是正确的,如果是后一个,则应将按钮添加为滚动视图的子视图,并在调用
scrollViewDidScroll:
时更新其帧。我从未尝试过这个方法,但它在理论上是有效的。

如果您在视图中添加简单按钮,那么如果您点击按钮。它将要求它采取行动

同车道


如果您在ScroolView中添加简单按钮,则如果您触摸按钮。它将要求它采取行动

如果触摸ScrolView的空白区域,则会调用UIScrolView的委托方法。


如果您将手指放在按钮上并拖动它,将明显影响scrollview。scrollview将100%拖动

当你在上面说你是指垂直还是在顶部?我是指在顶部。抱歉误解了。您需要指定您想要的行为。Eiko在4月4日问过你这个问题,从那以后你一直在网上留言,但你仍然没有回答。@rdesign你解决了这个问题吗?大多数的答案作者都不理解你的意思…谢谢你的回答。不幸的是,我把它描述错了。我的意思是在上面。所以按钮应该在滚动视图的顶部。scrollview应该仍然能够识别按钮接收到的触摸。按钮应该只在内部触地时启动。所以你想用一次触碰来影响两个不同的物体吗?这听起来是个糟糕的界面想法。。。为什么要按这个按钮?我想做一个菜单。好像有一瓶葡萄酒(按钮)。你可以滑动背景,选择你想在室内还是室外找到喝的地方(明白吗?),谢谢你的帮助。这对我来说听起来有点复杂,因为我也从来没有玩过很多触控事件:-)我会尝试一下。@辞职我也会尝试同样的触控感知和触控移动。将exclusiveTouch设置为“无”是否也改变了什么?@rdesign try scrollView.delaysContentTouches=YES;scrollView.canCancelContentTouches=是;这里有一个关于同样事情的问题:这解决了你的问题还是我误解了你的问题?如果触摸按钮(滚动或不滚动),会发生什么情况?+1如果他不想滚动,这是正确的,但可能他想滚动。我不明白他为什么还没有说明他在追求什么样的行为。
@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