Update 1-fontWithSize powrocie inny obiekt czcionki
znalazłem obejście:
// instead of
font = [font fontWithSize:pointSize];
// i can do this and get the correct font back
font = [UIFont fontWithName:font.fontName size:pointSize]
Używam Nick Lockwood's HTMLLabel klasę, aby włączyć się w NSAttributedString HTML, który odznacza się stylizacji w obrębie HTML. W przeważającej części działa świetnie.
Używam jednak niestandardowej czcionki w mojej aplikacji i z jakiegoś powodu moja czcionka jest zawsze renderowana pogrubioną czcionką. Nie mam tego problemu przy użyciu czcionek systemowych. Zawęziłem to do tej metody:
- (UIFont *)font
{
// ** Code Path 1 **
UIFont *font = _styles[HTMLFont];
if ([font isKindOfClass:[NSString class]])
{
font = [UIFont fontWithName:(NSString *)font size:17.0f];
}
NSInteger pointSize = [_styles[HTMLTextSize] floatValue] ?: font.pointSize;
if (self.bold) {
if (self.italic)
{
font = [font boldItalicFontOfSize:pointSize];
}
else
{
font = [font boldFontOfSize:pointSize];
}
} else if (self.italic) {
font = [font italicFontOfSize:pointSize];
} else {
// ** Code Path 2 **
font = [font fontWithSize:pointSize];
}
return font;
}
Ta metoda nazywana jest wiele razy. Podczas pierwszej iteracji, jeżeli ustawić punkt przerwania na Code Path 1
i zalogować font
, mam co ja spodziewałem:
<UICTFont: 0x7fd41bc8f2b0> font-family: "Fort-Book"; font-weight: bold; font-style: normal; font-size: 18.00pt
Jednak gdybym wylogować font
po Code Path 2
, otrzymuję to:
<UICTFont: 0x7fd41bd709a0> font-family: "Fort"; font-weight: bold; font-style: normal; font-size: 18.00pt
W jakiś sposób, dzwoniąc pod numer -fontWithSize:
, moja czcionka zmienia się z Fort-Book
na regularną Fort
.
Dokumentacja fontWithSize
wyraźnie stwierdza:
Zwraca obiekt czcionki, która jest taka sama jak w odbiorniku, ale który ma określony rozmiar zamiast.
Dlaczego miałbym otrzymać inny obiekt czcionki?
Możesz wstawić to jako odpowiedź i zaakceptować po kilku dniach .. – 0yeoj
Innym obejściem byłoby utworzenie nowej czcionki z deskryptora czcionki czcionki: [czcionka UIFontWithDescriptor: [boldItalicFont fontDescriptor] size: desiredFontSize]; – Russian