Ustawiam ramkę UILabels na podstawie wartości zwracanej przez UIFont sizeWithFont, ale z jakiegoś powodu, gdy używam czcionki niestandardowej, zwracane wartości zawierają niektóre wypełnienia, jak widać poniżej.Dlaczego rozmiar UIFont sizeWithFont zawiera puste miejsce w obliczeniach?
Gdy używam boldSystemFontOfSize tekst jest pionowo w środku (co jest to, co chcę), ale gdy używam fontWithName I skończyć z wyściółką pod tekstem. Każdy powód, dla którego sizeWithFont dodaje dopełnienie?
Herezje mój kod ...
CGRect frameLabel = label.frame;
CGSize sizeLabel = [label.text sizeWithFont:label.font];
frameLabel.size.width = sizeLabel.width;
frameLabel.size.height = sizeLabel.height;
[label setBackgroundColor:[UIColor redColor]];
** Edycja **
mogę obliczyć górną i dolną wyściółkę przy użyciu tego kodu i dostosować etykiety frame.origin .y, aby wyśrodkować moją etykietę w pionie, gdzie musi być
float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];
Czy to możliwe, że czcionki używam "Gotham" inclu po tej wyściółce i musiałbym edytować czcionkę? – AlBeebe