Minimalny rozmiar czcionki jest przestarzały w systemie iOS w wersji 6.0

92

Właśnie zaktualizowałem do xcode 4.5 z iOS 6.0 i podświetla ostrzeżenie na wszystkich etykietach UIL w moich plikach XIB, mówiąc: „minimalny rozmiar czcionki jest przestarzały na iOS w wersji 6.0”. Czy ktoś wie, do czego to się odnosi i jak to naprawić?

Aktualizacja: obraz nie jest już dostępny (był na https://skitch.com/hahmadi82/eyk51/cloud )

Hooman Ahmadi
źródło
1
@HoomanAhmadi: wszyscy programiści iOS otrzymali ten e-mail. Przeczytaj disclamer na dole: „Oprogramowanie w wersji wstępnej…”
Rok Jarc
7
Zmień „Minimalny rozmiar czcionki” w sekcji Automatyczne zmniejszanie na „Minimalna skala czcionki”. : p Po prostu miałem ten sam problem i przyszedłem prosto tutaj, zakładając, że czcionki nie naruszają NDA. Wygląda na to, że czcionki przeszły kilka zmian podczas aktualizacji.
erran
18
Podniosłem to pytanie, ponieważ nie zostało poprawnie zamknięte. Przynajmniej powód zamknięcia jest zły, zły. „dotyczy to tylko małego obszaru geograficznego” nie. Dotyczy wszystkich programistów iOS. „wyjątkowo wąska sytuacja, która nie ma ogólnego zastosowania do odbiorców internetu na całym świecie” nie. Dotyczy to wszystkich. „To pytanie raczej nie pomoże przyszłym gościom”, ale nie. Było to dla mnie niezwykle przydatne i prawdopodobnie będzie równie przydatne dla wszystkich programistów iOS. Rozumiem kwestię umowy o zachowaniu poufności, ale jak tylko umowa o zachowaniu poufności zostanie zniesiona, to pytanie się pojawi.
Jean-Denis Muys
9
Ludzie, kiedy pierwszy raz to naprawiłem, zrobiłem to ręcznie i to był szczególny rodzaj tortury. Potem musiałem scalić kilka zmian i dzięki Xcode beta dał mi emacs jako moje narzędzie do scalania, więc wykupiłem to i wziąłem nowszą wersję pliku, wiedząc, że je wyrzucę, ale potem zmieniłem te zmiany za pomocą TextWrangler: pliki są w formacie XML. Wystarczy zamienić: autoshrinkMode = "minimumFontSize" na autoshrinkMode = "minimumFontScale" i zamienić minimumFontSize = "10" na minimumFontScale = "0.5". Voila.
Rob
1
@LittleBobbyTables: Byłoby wspaniale, gdyby ludzie mogli ładnie prosić . Wściekły i utytułowany marudzenie jak komentarz Matheszabiego to świetny sposób, aby przekonać mnie, żebym nie otwierał ponownie pytania.
CA McCann

Odpowiedzi:

47

minimumFontSizeWłaściwość UILabeljest przestarzała od wersji iOS 6.0.

Alternatywa dla minimumFontSizejest minimumScaleFactor. Jeśli przypiszesz minimumFontSize/defaultFontSizedo minimumScaleFactor, działa to tak samo, jak minimumFontSize.

Kod jest następujący - na przykład rozmiar czcionki to 30,0, a jeśli chcesz, aby minimalny rozmiar czcionki to 12,0

YOURLABEL.font= [UIFont fontWithName:@"FONT_NAME" size:30.0];
[YOURLABEL setMinimumScaleFactor:12.0/[UIFont labelFontSize]];
Manju
źródło
19

Zamiast tego użyj minimumScaleFactor ... Link

Aravind NC
źródło
8

Szybka poprawka ... Tutaj minimalny rozmiar czcionki to 8.0

            CGFloat size = textLabel.font.pointSize;// font size of label text
            [textLabel setMinimumScaleFactor:8.0/size];
Sabareesh
źródło
5

Odpowiadam bardzo późno, ale innym może pomóc. Jak każdy wie, że setMinimumFontSizejest przestarzały, więc inną metodą setMinimumFontSizejest zamiana, setAdjustFontToFitWidthktóra zajmuje BOOL np

[yourLabel setAdjustsFontSizeToFitWidth:YES];
//or
yourLabel.adjustsFontSizeToFitWidth = YES;
Syed Ali Salman
źródło
3

Miałem podobny problem. Szybka poprawka polega na użyciu właściwości MinimumScaleFactor elementu UILabel.

Jayprakash Dubey
źródło
3

W przypadku Swift użyj następujących elementów:

//set the number (ex. 8 to your desired minimum font size)
myLabel!.minimumScaleFactor = 8/myLabel!.font.pointSize;`

Działa jak marzenie!

ColossalChris
źródło
1

Przejdź do wyszukiwarki, znajdź .storyboardplik lub swój .xibi otwórz za pomocą TextEdit. Użyj polecenia find, aby zlokalizować ciąg "autoshrinkMode"i zamienić wartość "minimumFontSize"na"minimumFontScale"

Dziwne, że konwersja nie została zapisana w skryptach aktualizacji ...

Również @Rob w komentarzach powyżej podał tę samą odpowiedź. Powinien otrzymać za to uznanie.

SnareChops
źródło
w moim pliku storyboardu nie ma trybu autoshrinkMode.
Timuçin,
Dzięki, to dla mnie działa idealnie. @Tim wystarczy, że wybierzesz UILabel i zaznacz opcję „etykieta” w prawym panelu narzędziowym i zaznacz opcje, zobaczysz jedną o nazwie „Autoshrink”. i.stack.imgur.com/H6YYJ.png
pabloverd
0

Możesz tam użyć minimalnego współczynnika skali lub przeciągnąć etykietę i ustawić autoshrik-> minimalną czcionkę.

Może to ci pomoże.

shreeji
źródło
0

Tak minumumFontSizejest przestarzałe.

Użyj następujących minimumScaleFactor:-

Obj.minimumScaleFactor= (floatValue);
Gaurav
źródło