Мне нужно выровнять базовые линии текста в UILabels. Сейчас я выравниваю базовые линии UILabels, содержащие текст, и когда размер шрифта текста в двух метках отличается, это приводит к выравниванию базовой линии UILabels, но смещению базовой линии текста (смещенной с небольшим краем, но все же перекос). Метки включены в пользовательский подкласс UIView, поэтому self
относится к охватывающему UIView.
вот соответствующий код
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
self.mySmallLabel.frame = CGRectMake(0,
self.bounds.size.height - self.mySmallLabel.bounds.size.height,
self.mySmallLabel.bounds.size.width,
self.mySmallLabel.bounds.size.height);
self.myBigLabel.frame = CGRectMake(self.mySmallLabel.frame.origin.x + self.mySmallLabel.bounds.size.width,
self.bounds.size.height - self.myBigLabel.bounds.size.height,
self.myBigLabel.bounds.size.width,
self.myBigLabel.bounds.size.height);
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
Этот код приводит к совпадению на изображении, связанном ниже.
Как видите, даже если базовые линии UILabel выровнены, базовые линии текста смещены с небольшим запасом. Как я могу выровнять базовые линии текста динамически (потому что размеры шрифта могут измениться во время выполнения)?