Как автоматически вращать ваши собственные виды?

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

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

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

2 ответа

Решение

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

[self setContentStretch:CGRectMake(0.5, 0.5, 0.0, 0.0)];

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

Другие вопросы по тегам