Изменение размера UIViews
Если мне нужно изменить размер или изменить положение UIView, есть ли лучший способ сделать это, чем следующее:
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height - 100);
Или, другими словами, есть ли способ просто сказать view.frame.size.height - = 100 через свойство без чтения?
Ответы
Ответ 1
Если вы хотите эффект -=100
, просто выполните:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Тогда вы можете быть уверены, что вы точно меняете то, что хотите изменить.
Кроме этого, я не думаю, что есть способ.
Ответ 2
Нельзя напрямую управлять высотой.
Обратите внимание, что каждый раз, когда вы вызываете view.frame, он вызывает метод, поэтому ваш код эквивалентен:
view.frame = CGRectMake([view frame].origin.x, [view frame].origin.y, [view frame].size.width, [view frame].size.height - 100);
Рассмотрим вместо этого настройку кадра в отдельной переменной:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Ответ 3
Используйте эту категорию UIView+position
, чтобы получить удобный доступ к элементам кадра:
http://bynomial.com/blog/?p=24