Анимация UIView frame.origin - PullRequest
10 голосов
/ 13 июня 2011

В Интернете я видел пример кода, касающегося простой вставки или выкатывания UIView.Имеет смысл иметь начало UIView с его координатами за пределами экрана (негатив), а затем параметр анимации просто меняет кадр UIView.Итак, первый вопрос: обеспечивает ли это наиболее очевидный метод?

Однако в моем коде источник кадра не может быть назначен.Я получаю сообщение об ошибке Xcode для этой строки, которое говорит об этом.

Я просто хочу сделать что-то подобное в анимации:

self.viewPop.frame.origin.y=100;

Любая помощь приветствуется.


ОБНОВЛЕНИЕ

Я решил эту проблему.Техника, которую я обнаружил, состоит в том, чтобы назначить фрейм вашего вида другому CGRect и внести изменения в этот CGRect, а затем назначить его обратно фрейму:

CGRect frame = self.moveView.frame;
frame.origin.x = newvalue.


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame = frame;

}];

Ответы [ 2 ]

12 голосов
/ 13 июня 2011

Я решил эту проблему. Техника, которую я обнаружил, состоит в том, чтобы назначить фрейм вашего вида другому CGRect и внести изменения в этот CGRect, а затем назначить его обратно фрейму:

CGRect frame = self.moveView.frame;
frame.origin.x = newvalue.


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame = frame;

}];
1 голос
/ 22 марта 2013

FWIW, приятно иметь категорию UIView для такого типа вещей:

@interface UIView (JCUtilities)

@property (nonatomic, assign) CGFloat frameX;

-(CGFloat)frameX;
-(void)setFrameX:(CGFloat)newX;

@end

@implementation UIView (JCUtilities)

- (CGFloat)frameX {
    return self.frame.origin.x;
}

- (void)setFrameX:(CGFloat)newX {
    self.frame = CGRectMake(newX, self.frame.origin.y,
                            self.frame.size.width, self.frame.size.height);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...