Применение преобразования к UITextView - предотвращение изменения размера содержимого

Когда я применяю преобразование поворота к a UITextView , а затем щелкните внутри, чтобы начать редактирование, кажется, что размер содержимого автоматически увеличивается. Новая ширина представления содержимого - это ширина ограничивающей рамки повернутого представления. текстовое поле шириной 500 и высотой 400, повернутое на 30 градусов, ширина нового содержимого будет:

(500 * cos(30)) + (400 * sin(30)) = 633

Или графически:

enter image description here

Интересно, если вы уже редактируете текстовое представление и ТОГДА примените y преобразование, то выясняется, что размер содержимого не изменяется. Похоже, что где-то в начале редактирования текста текстовое представление смотрит на свое свойство frame и регулирует размер содержимого на основе ширины кадра. Я предполагаю, что решение этой проблемы - сказать ему вместо этого использовать свойство bounds , однако я не знаю, где это сделать, так как я не уверен, где именно текстовое представление решает изменить размер содержимого.

Я погуглил, но не могу найти никаких ссылок на использование преобразованных UITextViews. Есть ли у кого-нибудь идеи по этому поводу?

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);
}
19
задан Stuart 25 June 2011 в 23:57
поделиться