Objective-C: setValue: value forKey: xposition

Objective-C: setValue: value forKey: xposition

我正在尝试为 NSMutableArray 中的某些对象创建 "animation" 效果。我设置了它,所以每 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 = ... 但它说“属性 not found on object of type 'id'。有什么建议吗?

任何帮助!提前致谢!

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

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

另一种选择是使您的代码更具可读性:

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

你也可以使用快速枚举:

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