2014-09-18 3 views
1

Изменение размера UIView может быть выполнено путем изменения его свойства frame.size.height ИЛИ путем изменения его ограничения NSLayoutHeight. Однако по умолчанию уменьшение высоты UIView приведет к отключению UIView снизу вверх, мне нужно уменьшить высоту UIView сверху вниз. Это возможно?Уменьшить высоту UIView сверху вниз?

+1

Вы пытались установить свойство [contentMode] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instp/UIView/contentMode)? –

+0

Что вы подразумеваете под сверху вниз? Вы хотите, чтобы нижняя часть обзора оставалась там, где она есть, и сверху вниз? Вы делаете анимацию? – rdelmar

ответ

1

При изменении высоты отрегулируйте origin.y вид.

CGFloat const delta = 100; 
[aView setFrame:CGRectMake(CGRectGetMinX([aView frame]), CGRectGetMinY([aView frame]) + delta, CGRectGetWidth([aView bounds]), CGRectGetHeight([aView bounds]) - delta)]; 
+0

Отличный ответ! – Genevios

1

Вам также необходимо отрегулировать начало кадра.

Например:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 20.0, 40.0)]; 

изменить высоту до 30.0 от 'сверху вниз' делать:

view.frame = CGRectMake(0.0, 10.0, 20.0, 30.0); 
0

Создать контейнер UIView с clipsToBounds == YES, и переместить вид внутри контейнера Посмотреть. Так же, как обтравочная маска в программном обеспечении для рисования.

Смежные вопросы