Как разместить UIView?
Я потратил пару часов, пытаясь позиционировать UIView и в конце концов понял, что мне нужно изменить рамочку представлений. Поэтому я добавил метод setPosition для подкласса UIViewController, как этот
- (void) setPosition:(CGPoint)position
{
CGRect newFrame = self.view.frame;
newFrame.origin.x = position.x;
newFrame.origin.y = position.y;
self.view.frame = newFrame;
}
Однако это кажется настолько простым, что я не понимаю, почему UIViews уже не имеет этого метода, что заставляет меня думать, что это может быть неправильный способ сделать это. Так что мой вопрос...
Является ли этот метод ОК или я делаю то, что я не должен делать... по какой-то причине?
Ответы
Ответ 1
Копирование, изменение и установка кадра снова, как вы это сделали, как это делается вообще. Это также можно сделать, создав прямоугольник и установив его непосредственно:
UIView.frame = CGRectMake(50,50,50,50);//x,y,w,h
Выполнение этого в блоке анимации будет анимировать эти изменения.
Альтернативно вы можете установить точку обзора с помощью:
UIView.center = CGPointMake(50,50);
Ответ 2
Другой способ:
CGPoint position = CGPointMake(100,30);
[self setFrame:(CGRect){.origin = position,.size = self.frame.size}];
Это я сохраняю параметры размера и изменяю только начало.