Было много путаницы в том, чего я на самом деле пытаюсь достичь. Поэтому, пожалуйста, позвольте мне переформулировать мой вопрос. Это так же просто, как:
Как текст центра Apple внутри
UILabel
-drawTextInRect:
?
Вот какой контекст: почему я ищу подход Apple к центру текста:
- Я не доволен тем, как они центрируют текст внутри этого метода.
- У меня есть собственный алгоритм, который делает работу так, как я хочу.
Однако есть некоторые места, в которые я не могу внедрить этот алгоритм, даже не с помощью swizzling. Знакомство с точным алгоритмом, который они используют (или эквивалентом этого), решит мою личную проблему.
Здесь вы можете поэкспериментировать с демонстрационным проектом. Если вам интересно, что моя проблема с реализацией Apple, посмотрите на левую сторону (базовая UILabel): текст вскакивает вверх и вниз, когда вы увеличиваете размер шрифта с помощью ползунка, а не постепенно перемещаетесь вниз.
Опять же, все, что я ищу, это реализация -drawTextInRect:
, которая делает то же самое, что и base UILabel
, но без вызова super
.
- (void)drawTextInRect:(CGRect)rect
{
CGRect const centeredRect = ...;
[self.attributedText drawInRect:centeredRect];
}