Как автоматически вращать ваши собственные виды?
Я узнал, что лучший способ получить изящное вращение - это установить маску автоматического поворота для вида, который вы хотите изменить или переместить. Это прекрасно работает, если вы используете представления SDK, такие как UILabel, но если у вас есть собственный настраиваемый вид, который использует метод drawRect, он не вращается так изящно. Фактически, единственное, что происходит, это то, что он растягивает то, что вы нарисовали в drawRect.
Я пытался перерисовать как до, так и после поворота, но это не дает мне такого плавного поворота.
Я посмотрел на автоматическое вращение UITextField (гибкая ширина) в замедленном режиме, и оно идеально следует краю во время вращения. Это то, что я хочу, чтобы мой взгляд сделал, так как мне это сделать? Мои взгляды переходят в правильное положение до или после поворота.
2 ответа
Следующая строка заставит ваш UIView растягивать только средний пиксель. Если это не ваше поведение, я предлагаю вам прочитать документацию для contentStretch, чтобы узнать, как манипулировать значениями CGRect.
[self setContentStretch:CGRectMake(0.5, 0.5, 0.0, 0.0)];
Я предполагаю, что UITextField
у вас есть по крайней мере три подпредставления: одно отображает левую кепку границы поля, другое - правую кепку, а второе - середину, с автоматически меняющимися размерами масок "гибкий правый край", "гибкий левый край" и "гибкая ширина" соответственно. Если вы настроили свой пользовательский вид что-то подобное, и убедитесь, что его autoresizesSubviews
свойство установлено в YES
, тогда вы должны получить такое же плавное изменение размера, как в текстовом поле.