Когда я применяю преобразование вращения к UITextView
, а затем щелкните внутри, чтобы начать редактирование, кажется, что размер контента автоматически расширяется. Новая ширина представления содержимого - это ширина ограничивающего окна с повернутым представлением. Например, с учетом текстового поля шириной 500 и высоты 400 и повернутого на 30 градусов, новая ширина содержимого будет:
(500 * cos(30)) + (400 * sin(30)) = 633
Или графически:
Интересно, что если вы уже редактируете текстовое представление, а THEN применяете это преобразование, то оказывается, что размер содержимого не изменяется. Таким образом, кажется, что когда-то вокруг начала редактирования текста текстовое представление просматривает его свойство frame
и корректирует размер содержимого на основе ширины кадра. Я предполагаю, что решение этого заключается в том, чтобы сказать ему использовать свойство bounds
, но я не знаю, где это сделать, поскольку я не уверен, где именно текстовое представление решает изменить размер содержимого.
У меня есть googled, но не могу найти ссылок на использование преобразованных UITextView. Есть ли у кого-нибудь идеи об этом?
EDIT (действие кнопки из тестового проекта):
- (IBAction)rotateButtonTapped:(id)sender {
if (CGAffineTransformIsIdentity(self.textView.transform)) {
self.textView.transform = CGAffineTransformMakeRotation(30.0 * M_PI / 180.0);
}
else {
self.textView.transform = CGAffineTransformIdentity;
}
NSLog(@"contentsize: %.0f, %.0f", textView.contentSize.width, textView.contentSize.height);
}