Objective-C:setValue:value forKey:xposition

时间:2015-08-07 15:20:16

标签: ios objective-c setvalue

我正在尝试创建一个"动画"对NSMutableArray中的某些对象的效果。我每隔2秒设置一次,对象会改变它们的x值(我不想做一个真正的动画,所以请不要建议一个!):

- (void)jumpLeft {
    [self performSelector:@selector(jumpRight) withObject:nil afterDelay: 2.0];

    for (int i = 0; i < [self.jumpArray count]; i++) {
        [self.jumpArray[i] setValue:@(30*i) forKey: "XPOSITION"];
    }
}

- (void)jumpRight {
    [self performSelector:@selector(jumpLeft) withObject:nil afterDelay: 2.0];

    for (int i = 0; i < [self.jumpArray count]; i++) {
        [self.jumpArray[i] setValue:@(20*i) forKey: "XPOSITION"];
    }
}

假设它在整个游戏中继续。我的问题是,我要输入什么来改变x位置?我试着看看人们说了什么,我什么都没发现。我也尝试过做self.jumpArray [i] .center = ...但它说&#34;属性没有找到类型&#39; id&#39;的对象。有什么建议吗?

一切都有帮助!提前谢谢!

1 个答案:

答案 0 :(得分:3)

假设self.jumpArrayUIView个对象的数组,您可以使用setter方法设置中心,而不是使用属性语法:

[self.jumpArray[i] setCenter:somePointValue];

另一个选择是让你的代码更具可读性:

UIView *view = self.jumpArray[i];
view.center = somePointValue;

您还可以使用快速枚举:

for (UIView *view in self.jumpArray) {
    view.center = somePointValue;
}