iPhone dev - установка позиции представления в viewDidLoad - PullRequest
4 голосов
/ 01 марта 2010

Итак, в Интерфейсном Разработчике у меня есть представление в суперпредставлении, которое содержит два объекта Представления Изображения. Я хотел бы убрать этот вид за пределы экрана при запуске приложения, чтобы его можно было анимировать для перемещения на место. Представление описывается как pictureFrame в файле .h для интерфейса, и у меня есть представление, сопоставленное с выходом pictureFrame. Вот мой текущий viewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];

    CGRect theFrame = [self.pictureFrame frame];
    theFrame.origin.y = -290;
}

Но, похоже, это не работает. Как мне это исправить?

Ответы [ 2 ]

16 голосов
/ 01 марта 2010

Вы забыли установить рамку своего вида:

CGRect theFrame = [self.pictureFrame frame];
    theFrame.origin.y = -290;

добавь это и все хорошо:

self.pictureFrame.frame = theFrame;

1 голос
/ 01 марта 2010

Я склонен делать такие вещи как один лайнер. Мне легче вспомнить, что происходит, когда я возвращаюсь и читаю это позже.

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

#define kPictureFrameHorizontalOffset -290


- (void)viewDidLoad {
    [super viewDidLoad];
    self.pictureFrame.frame = CGRectMake(self.pictureFrame.frame.origin.x + 0,
                                         self.pictureFrame.frame.origin.y + kPictureFrameHorizontalOffset,
                                         self.pictureFrame.frame.size.width + 0,
                                         self.pictureFrame.frame.size.height + 0);
}

Конечно, это немного более многословно, но у меня это хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...