Das Attribut NSStrikethroughStyleAttributeName von NSMutableAttributedString funktioniert in iOS8 nicht ordnungsgemäß

7

Ich habe eine veränderbare attributierte Zeichenfolge ohne das Attribut NSStrikethroughStyleAttributeName wie folgt:

%Vor%

und eine andere veränderbare attributierte Zeichenfolge mit dem Attribut NSStrikethroughStyleAttributeName wie folgt:

%Vor%

und eine ganze Zeichenfolge, die zwei Strings enthält:

%Vor%

wenn ich den ganzen String an ein UILabel anschließe:

%Vor%

Bei iOS7 und iOS8 wird beides gut angezeigt:

aaaa bbbb

Aber wenn ich ihre Positionen tausche:

%Vor%

Es wird korrekt in iOS7 angezeigt, aber nicht korrekt in iOS8

ios7: bbbb aaaa ios8: bbbbaaaa

Es scheint, dass UILabel in iOS8 die Durchstreichung nicht korrekt darstellt, wenn das erste Zeichen in der attributierten Zeichenfolge nicht durchgestrichen ist. Ich denke, das ist ein Fehler in iOS8, gibt es jemanden, der das gleiche Problem mit mir begegnet?

    
Richard 21.09.2014, 05:40
quelle

6 Antworten

10
%Vor%

es sollte helfen

    
Yuriy Katkov 22.09.2014, 15:04
quelle
8

Auf iOS8.1.1 haben wir mehr Probleme mit der Einstellung NSMutableAttributedString , wie mit NSStrikethroughStyleAttributeName .

Wenn sich Ihre Attribute nicht ändern, versuchen Sie dies und es wird.

Ich begann mit dem UILabel zu argumentieren, das sind spirit-chaneger-Attribute. Wenn wir also davon ausgehen, dass der NSStrikethroughStyleAttributeName den Label-Text nicht initialisiert hat, müssen wir ihn initialisieren.

Was ich tue ist die Initialisierung von mutableAttributedString durch einen none NSStrikethroughStyleAttributeName und das Ändern dieses Attributs zum Hervorheben: Ergebnis ist:

%Vor%

effektives Ergebnis & lt; = iOS8.1.1

    
NSSakly 24.11.2014 13:38
quelle
3

Fix für den Fehler in iOS8: Strike Through ersten Buchstaben der Zeichenfolge mit klarer Farbe und dann Strike durch den Text, in dem je Bereich möchten Sie.

    
Sanjeeva kumar kalva 25.09.2014 11:49
quelle
1

Wenn Sie den Index nicht von 0 aus starten, versuchen Sie Folgendes:

%Vor%     
Yahoho 28.05.2015 02:29
quelle
1

Wenn du NSStrikethroughStyleAttributeName hinzufügst, solltest du auch NSBaselineOffsetAttributeName hinzufügen, was auf 0 gesetzt ist. Und in swift solltest du den rawValue von NSUnderlineStyl e verwenden. Bildbeschreibung hier eingeben

    
贺彦文 22.06.2017 09:03
quelle
0

Ich sehe das gleiche Problem und die Änderung des Werts von NSSstrikethroughStyleAttributeName zu NSUnderlineStyleNone behebt es nicht. Sicher scheint wie iOS 8 Bug.

    
amit 24.09.2014 00:33
quelle