2013-10-10 3 views
4

Мне сложно разобраться с дизайном макета, который подходит как для iPhone 3.5inch, так и для iPhone 5-дюймового (симуляторы). Я проверил автоматический макет, и все макеты были идеальными. Однако теперь мне нужно использовать UIScrollView, и поэтому вам нужно снять флажок с автоматической компоновки.Работа с iPhone 3.5inch и дисплеем IPhone 4inch (UIScrollView)

Также при просмотре макета с iPhone 4-дюймовым дисплеем его добавляет около 60 пикселей к верхней части UIScrollView.

Есть ли лучший способ сделать это (настроить scrollview без отмены автоматического макета)? Поэтому я могу поддерживать iPhone 4.

//to set up the scrollview 
[self.scrollView setScrollEnabled:YES]; 
[self.scrollView setContentSize:CGSizeMake(320, 800)]; 

однако он не прокручивается, пока я не сниму автоотключение. Есть лучший способ сделать это?

+0

пожалуйста поставить скриншот вашего вопроса для лучшего понимания. –

+1

'UIScrollView, и, следовательно, нужно отключить автоматическую компоновку для использования', почему это так? –

+0

@ArkadiuszHolko вид прокрутки не прокручивает, не сняв флажок auto -layout по какой-то причине. Я мог бы сделать это неправильно. – DevC

ответ

0

Попробуйте (это решить мою проблему):

scrollView addConstraint:[NSLayoutConstraint constraintWithItem:lastSubView 
             attribute:NSLayoutAttributeRight 
             relatedBy:NSLayoutRelationEqual 
              toItem:scrollView 
             attribute:NSLayoutAttributeRight 
             multiplier:1.0 
              constant:0]]; 

ССЫЛКА: UIScrollView doesn't use autolayout constraints

0

UIScrollView при использовании Autolayout немного отличается. Вам нужно внести некоторые изменения. Вы отвечаете here.

+0

Спасибо за комментарий, я попытался реализовать то, что было предложено, но я думаю, что немного потерял, я создал subview и добавил, что это scrollview, а не добавление uiElements к нему '[scrollView addConstraint: [NSLayoutConstraint constraintWithItem: атрибут lastSubView: NSLayoutAttributeRight relatedBy: NSLayoutRelationEqual toItem: scrollView: NSLayoutAttributeRight multiplier: 1.0 constant: 0]]; ' – DevC

+0

Теперь вы используете автоматическую компоновку? Проверено автоматическое оформление? Добавляли ли вы 'translatesAutoresizingMaskIntoConstraints = NO?', Если вы используете автоматическую компоновку? – iOS

+0

Я использовал AutoLayout, но я не использовал 'translatesAutoresizingMaskIntoConstraints = NO;', это заставит его работать? – DevC

0

Вы можете сделать что-то подобное на своем UIScrollView frame. Назначьте рамку для прокрутки в соответствии с нижеприведенным CGRect.

CGRect rect=[[UIScreen mainScreen] bounds]; 

Надеюсь, это сработает для вас.

+0

Не могли бы вы объяснить, пожалуйста? – DevC

1

Try AUTORESIZE,

self.scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin); 
+0

Извините, это не помогло, спасибо. – DevC

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