gpt4 book ai didi

ios - 使用圆形按钮创建关卡选择屏幕

转载 作者:行者123 更新时间:2023-11-29 02:45:03 24 4
gpt4 key购买 nike

我正在尝试为我正在制作的游戏创建一个关卡选择屏幕,其中包含一个带有关卡编号的圆形按钮网格。任何时候都应该选择一个按钮并以填充背景显示,而不仅仅是轮廓。

我最初的实现是创建一个如下所示的 View :

@implementation LevelView

- (void)drawRect:(CGRect)rect {
int i = 1;
for (int row = 0; row < NUM_ROWS; row++) {
for (int col = 0; col < NUM_COLS; col++) {
// Calculate frame of the circle for this level.
if (i == selected) {
// Use CoreGraphics to draw filled circle with text.
}
else {
// Use CoreGraphics to draw outlined circle with text.
}
i++;
}
}
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
for (UITouch *touch in touches) {
// Get the level that the touch is in the circle of.
int level = [self levelForPoint:[touch locationInView:self]];
selected = level;
[self setNeedsDisplay];
}
}

@end

问题是选择和取消选择各种按钮不像 iOS7 锁定屏幕或电话应用程序中的圆形按钮那样具有动画效果(淡入、淡出)。

是否有更好/更简单的方法可以实现此目的?

最佳答案

为了响应您淡出按钮状态的请求:我们子类化了 UIButton 并覆盖了 setHighlighted: 方法,如下所示:

- (void) setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];

if (highlighted) {
[self setBackgroundColor:[UIColor whiteColor]];
} else {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.4f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[self setBackgroundColor:nil];
[UIView commitAnimations];
}
}

关于ios - 使用圆形按钮创建关卡选择屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25251463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com