Когда я применяю преобразование вращения к UITextView
и затем нажимаю внутри, чтобы начать редактирование, кажется, что размер контента автоматически увеличивается.Новая ширина представления содержимого - это ширина ограничительной рамки повернутого представления.Например, если текстовое поле имеет ширину 500 и высоту 400 и повернуто на 30 градусов, ширина нового содержимого будет:
(500 * cos(30)) + (400 * sin(30)) = 633
Или графически:
Интересно, что если вы уже редактируете текстовое представление и ТОГДА применяете преобразование, то, по-видимому, никаких изменений в размере содержимого не производится.Таким образом, кажется, что когда-то в начале редактирования текста, текстовое представление смотрит на его свойство frame
и регулирует размер содержимого на основе ширины кадра.Я полагаю, что решение этой проблемы состоит в том, чтобы сказать ему использовать вместо этого свойство bounds
, однако я не знаю, где это сделать, поскольку не уверен, где именно текстовое представление решает изменить размер содержимого.
Я гуглил, но, похоже, не могу найти никаких ссылок на использование преобразованных UITextViews.У кого-нибудь есть идеи по этому поводу?
РЕДАКТИРОВАТЬ (действие кнопки из тестового проекта):
- (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);
}