Mam metoda, która daje mi idealny rozmiar dla UITextView danej długości łańcucha (z odpowiednim właściwym rozmiarze czcionki):Z czym powinienem zastąpić przestarzałą metodę sizeWithFont:?
- (NSInteger) heightOfLabel:(NSString*) string {
CGSize maximumLabelSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width - 40, FLT_MAX);
CGSize expectedLabelSize = [[NSString stringTrimmedForLeadingAndTrailingWhiteSpacesFromString:string]
sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:maximumLabelSize
lineBreakMode:NSLineBreakByWordWrapping];
return expectedLabelSize.height + 5;
}
W rzeczywistości, to nadal daje mi doskonałe dopasowanie, nawet w iOS7 . Chociaż teraz pojawia się metoda ostrzegania, która mówi, że nie powinienem używać "sizeWithFont: contrainedToSize: lineBreakMode".
on teraz mówi, że należy używać -boundingRectWithSize: opcje: atrybuty: kontekst:
Metoda ta nie jest nowością iOS7 a zatem zorientować, że jest w porządku, aby poprosić go na przepełnienie stosu, a nie będzie na oficjalnym forum twórców jabłek.
Mam trzy pytania:
1) Bo to jest przestarzała, to znaczy, należy wymienić go na pewno, mimo to nadal działa?
2) Próbowałem wiele różnych metod boundingRectWithSize: z różnymi zmiennymi, ale nigdy nie jest doskonały, zawsze wydaje się być nieco na zewnątrz (jak wiele pytań stackoverflow wskazuje) - czy istnieje doskonały zamiennik tego niezaakceptowanego metoda, która działa dokładnie tak samo jak moja poprzednia metoda, przy minimalnym wysiłku?
3) po co usuwać tę metodę? Czy to z powodu nakładania się tej drugiej metody?
sprawdź to [link] (http://www.cnblogs.com/lisa090818/p/3445161.html). – yazh
wtf to ten link? – Rambatino