如何在Apple WatchKit中制作动画按钮?

时间:2014-12-11 12:14:17

标签: ios objective-c xcode watchkit

我想在WatchKit中创建一个带动画的按钮,但似乎我无法找到修改WKInterfaceButton的方法或将图片拖到故事板中的按钮。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:20)

经过一番研究后我找到了解决方案,这很简单,但很容易被忽略:)

首先,将按钮拖动到故事板中创建的场景中。

其次,选择按钮,将其属性contentText修改为Group。如果找不到content属性,请点击屏幕右上角的Attributes Inspector按钮,它看起来像一个断点按钮或带有条形的向下箭头。

enter image description here

现在您可以控制在按钮内创建的组。您需要在控制器代码中添加此WKInterfaceGroup的引用。这是一个例子:

@interface AAPLButtonDetailController()
@property (weak, nonatomic) IBOutlet WKInterfaceGroup *buttonGroup;   
@end


@implementation AAPLButtonDetailController

- (instancetype)init {
    self = [super init];

    if (self) {
        // Initialize variables here.
        // Configure interface objects here.
        [_buttonGroup setBackgroundImageNamed:@"Bus"];
        [_buttonGroup startAnimating];
    }

    return self;
}

因此按钮动画将在场景初始化后播放。请记住,目前仅支持帧动画,一个动画中的所有帧都应命名为“Bus0.png”,“Bus1.png”....

enter image description here

希望这有助于:)

答案 1 :(得分:1)

在我需要控制重复次数或持续时间的情况下,Reck的帖子为我工作。如果你只是想开始或停止一个按钮的动画,下面的工作对我来说,其中twoButton是一个WKInterfaceButton,我有一组图像名称为Bus0@2x.png,Bus1 @ 2x.png等。

- (void)startButtonAnimating
{
    // This works, but can't control repeat counts or duration
    [self.twoButton setBackgroundImageNamed:@"Bus"];
    // But you can stop after a delay by setting background image nil
    [self performSelector:@selector(stopGroupButtonAnimating) withObject:nil afterDelay:1.5];
}

- (void)stopButtonAnimating
{
    [self.twoButton setBackgroundImage:nil];
}