UITextView NSAttributedString Size
Pracuję nad aplikacją, która używa UITextView.
UITextView powinien rosnąć lub zmniejszać się, aby pasował do tekstu, zarówno w pionie, jak iw poziomie. Aby to zrobić, nadpisuję sizeToFit w podklasie i ustawiam granice w ten sposób:
- (void)sizeToFit {
[self setBounds:(CGRect){.size = self.attributedText.size}];
}
Problem polega na tym, że ten rozmiar nie odzwierciedla prawidłowego rozmiaru łańcucha, ponieważ UITextView klipuje tekst. Ustawiam wstawki krawędzi na zero, więc nie powinno to być problemem?
W tym momencie myślę, że jest to błąd z właściwością rozmiaru NSAttributedString, ale to samo dzieje się, gdy używam opcji boundingRectWithSize: context:
[self setBounds:(CGRect){.size = [self.attributedText boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX) options:0 context:nil].size}];
Może więc każdy kod wykonujący obliczenia układu dla NSAttributedString nie działa dobrze z obliczeniami układu UITextView.
Oto przykładowy projekt, który pokazuje problem.
Wszelkie pomysły są mile widziane!
EDYCJA: Powinienem również zaznaczyć, że poniższe nie działają:
- (void)sizeToFit {
[self setBounds:(CGRect){.size = [self sizeThatFits:self.attributedText.size]}];
}