我想创建一个应用程序,其视图随机移动或移动到您触摸屏幕的位置。我有以下问题:我做了一个开始随机动画的按钮,我想制作另一个停止动画的按钮。问题是两个按钮是重叠的,只有第一个按钮显示在第二个按钮的位置,我按下它,第二个按钮显示在应该是的位置。我不知道我做错了什么,可能我对子视图有些问题。这是我绘制按钮的代码。
- (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];
}
想出我的错误,我对按钮的名字感到困惑并误用了它们。
答案 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)
),当你修复它时会使它们重叠。改变其中一个。