2013-02-12 9 views
5

Wiem, jak znaleźć rozmiar tekstu za pomocą sizeWithFont, ale to, co naprawdę chcę zrobić, to znaleźć faktyczny najwyższy punkt i najniższy punkt tekstu, który został narysowany w UILabel.Uzyskiwanie fizycznej lokalizacji tekstu w UILabel

Potrzebuję dodać sztuczny kursor do widoku z UILabel w nim. Problem polega na tym, że tekst w UILabel wydaje się dowolnie zmieniać górny i dolny margines. Nie mogę ustalić, jak działa system operacyjny, gdzie umieścić tekst w numerze UILabel.

To, co byłoby wspaniałe, to móc stworzyć kategorię lub metodę, która wykracza poza pochodzenie piksela osi Y rzeczywistego tekstu narysowanego na widoku.

Czy to w ogóle możliwe? W jaki sposób UITextField pozycjonuje tekst i kursor idealnie?

UPDATE

Myślałam, że to może być możliwe przez uzyskanie kontekst UILabel i znajdzie spacje na górze, która powinna dać mi piksela pochodzenie Y rzeczywistego prawa tekstowego? Nie mam pojęcia, od czego zacząć, lub sprawić, by był wystarczająco wydajny, by nie blokować częstych zmian w UILabel.

Wielkie dzięki.

+0

robi '[UITextField textRectForBounds:]' nie daje tego, co chcesz? – trojanfoe

+0

Wygląda na to, że nie zmienia wysokości, jeśli rozmiar czcionki zmniejsza się (automatyczna skrócona lista UILabel) –

Odpowiedz

0

Czy potrzebujesz użyć UILabel lub możesz użyć wyłączonego UITextView?

dla tekstu zobaczyć można coś zrobić jak

CGRect rect = [textView.layoutManager usedRectForTextContainer:textView.textContainer]; 

To powinno dać ci to, co chcesz. Jeśli pamięć służy do prostokąta, to powróci ona w stosunku do widoku tekstowego.

Nadzieja to pomaga :)

Powiązane problemy