UIButtons重叠

时间:2012-06-18 21:11:41

标签: iphone objective-c ios xcode uibutton

我想创建一个应用程序,其视图随机移动或移动到您触摸屏幕的位置。我有以下问题:我做了一个开始随机动画的按钮,我想制作另一个停止动画的按钮。问题是两个按钮是重叠的,只有第一个按钮显示在第二个按钮的位置,我按下它,第二个按钮显示在应该是的位置。我不知道我做错了什么,可能我对子视图有些问题。这是我绘制按钮的代码。

- (void)drawRect:(CGRect)rect {
// Drawing code

UIButton *randomMovementButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[randomMovementButton addTarget:self 
           action:@selector(animationLoop:finished:context:)
 forControlEvents:UIControlEventTouchDown];
[randomMovementButton setTitle:@"Move Random" forState:UIControlStateNormal];
randomMovementButton.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[self addSubview:randomMovementButton];

UIButton *stopButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[stopButton addTarget:self
            action:@selector(stopAnimation:) 
     forControlEvents:UIControlEventTouchDown];
[randomMovementButton setTitle:@"Stop Moving Random" forState:UIControlStateNormal];
randomMovementButton.frame = CGRectMake(80.0, 210.0, 200.0, 40.0);
[self addSubview:stopButton];
}

想出我的错误,我对按钮的名字感到困惑并误用了它们。

2 个答案:

答案 0 :(得分:0)

只需为两个按钮使用不同的框架,它们就不会重叠......

答案 1 :(得分:0)

它们没有重叠。第二个按钮没有框架。你写了这个:

UIButton *stopButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[stopButton addTarget:self
        action:@selector(stopAnimation:) 
 forControlEvents:UIControlEventTouchDown];
[randomMovementButton setTitle:@"Stop Moving Random" forState:UIControlStateNormal];
randomMovementButton.frame = CGRectMake(80.0, 210.0, 200.0, 40.0);
[self addSubview:stopButton];

在第三和第四行,你写了randomMovementButton而不是stopButton。这意味着Title和frame都设置为randomMovementButton而不是stopButton。此外,第二部分和第一部分上的框架是相同的(两者都是CGRectMake(80.0, 210.0, 200.0, 40.0)),当你修复它时会使它们重叠。改变其中一个。