Мне нужно выровнять базовые линии текста в 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 выровнены, базовые линии текста немного смещены. Как динамически выровнять базовые линии текста (поскольку размеры шрифта могут измениться во время выполнения)?