2015-08-07 3 views
1

Я пытаюсь создать эффект «анимации» для некоторых объектов в NSMutableArray. Я его настроить так, каждые 2 секунды, объекты меняют свое значение х (я не хочу, чтобы сделать фактическую анимацию так, пожалуйста, не предложить один!):Objective-C: setValue: value forKey: xposition

- (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 [я] .center = ... но он говорит: «Свойство не найдено на объект типа„ид“. Любые предложения?

Все, что помогает! Спасибо заранее!

+0

P.S. Я знаю, что введенные значения не заставят его «прыгать влево» или «прыгать вправо», они больше или меньше заполнителей для примера. – Kiley

+0

Какие объекты в 'jumpArray'? Являются ли они «UIView»? –

+0

они UILabels - извините за неясное – Kiley

ответ

3

Предполагая, что self.jumpArray является массив UIView объектов можно задать центр, используя метод установки вместо того, чтобы использовать синтаксис свойств:

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

Другим вариантом является, чтобы сделать код более читаемым:

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

Вы также можете использовать быстрое перечисление:

for (UIView *view in self.jumpArray) { 
    view.center = somePointValue; 
} 
Смежные вопросы