Как автоматически вращать ваши собственные виды? - PullRequest
2 голосов
/ 09 сентября 2010

Я узнал, что лучший способ получить изящное вращение - это установить маску автоматического поворота для вида, который вы хотите изменить или переместить. Это прекрасно работает, если вы используете представления SDK, такие как UILabel, но если у вас есть собственный настраиваемый вид, использующий метод drawRect, он не вращается так изящно. Фактически, единственное, что происходит, это то, что он растягивает то, что вы нарисовали в drawRect.

Я пытался перерисовать как до, так и после вращения, но это не дает мне такого плавного вращения.

Я посмотрел на автоматическое вращение UITextField (гибкая ширина) в замедленном режиме, и оно идеально повторяет кромку во время вращения. Это то, что я хочу, чтобы мой взгляд сделал, так как мне это сделать? Мои взгляды переходят в правильное положение до или после поворота.

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Следующая строка заставит ваш UIView растягивать только средний пиксель.Если это не ваше поведение, я предлагаю вам прочитать документацию для contentStretch, чтобы узнать, как манипулировать значениями CGRect.

[self setContentStretch:CGRectMake(0.5, 0.5, 0.0, 0.0)];
0 голосов
/ 09 сентября 2010

Я бы предположил, что у UITextField, на который вы смотрите, есть по крайней мере три подпредставления: одно отображает левую кепку границы поля, одно - правую, а второе - середину с масками авторазмера «гибкого» Правое поле »,« Гибкое левое поле »и« Гибкая ширина »соответственно. Если вы настроили свой пользовательский вид чего-то подобного и убедитесь, что его свойство autoresizesSubviews установлено в YES, то вы должны получить такое же плавное изменение размера, как в текстовом поле.

...