Hallo,
Ich habe eine Chat App gebaut. Wie bei anderen Messaging Apps wird die größe der Message-Blasen an den verfassten Text angepasst. Das funktioniert soweit einwandfrei, jedoch wird bei mir die Font des UITextViews in der Blase nicht zu 100% scharf dargestellt.
Anscheinend liegt das an den Berechnungen bzw. dem Resizing des UITextViews (dessen Größe ebenfalls berechnet wird). Laut anderen Beiträgen zu dem Thema sollte das Problem gelöst werden, indem man die Größe des CGRects vor dem Setzen des Frames rundet. (Deshalb das .integral)
Leider ist die Schrift bei mir dennoch unscharf.
Hat jemand eine Lösung für dieses Problem, oder kennt jemand einen besseren Weg, die Blasen zu berechnen?
Hier mein Code in der willDisplayCell:
Um zu zeigen was hiermit gemeint ist (das Screenshot ist wohl zu unscharf, um die Unschärfe der Schrift zu erkennen):
Screen Shot 2017-09-27 at 17.55.37.png
Merci
Ich habe eine Chat App gebaut. Wie bei anderen Messaging Apps wird die größe der Message-Blasen an den verfassten Text angepasst. Das funktioniert soweit einwandfrei, jedoch wird bei mir die Font des UITextViews in der Blase nicht zu 100% scharf dargestellt.
Anscheinend liegt das an den Berechnungen bzw. dem Resizing des UITextViews (dessen Größe ebenfalls berechnet wird). Laut anderen Beiträgen zu dem Thema sollte das Problem gelöst werden, indem man die Größe des CGRects vor dem Setzen des Frames rundet. (Deshalb das .integral)
Leider ist die Schrift bei mir dennoch unscharf.
Hat jemand eine Lösung für dieses Problem, oder kennt jemand einen besseren Weg, die Blasen zu berechnen?
Hier mein Code in der willDisplayCell:
C-Quellcode
- let estimatedFrame = NSString(string: message.message!).boundingRect(with: CGSize(width: self.view.frame.size.width*0.65, height: 10000), options: NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin), attributes:[NSFontAttributeName: UIFont(name:FONT_REGULAR,size:16)!], context: nil)
- var frame = theCell.cellBackgroundView.frame.integral
- frame.size.width = estimatedFrame.width+33
- frame.size.height = estimatedFrame.height+19
- theCell.cellBackgroundView.frame = frame.integral
- var textviewframe = theCell.messageTextView.frame.integral
- textviewframe.size.width = estimatedFrame.width+11
- textviewframe.size.height = estimatedFrame.height+19
- theCell.messageTextView.frame = textviewframe.integral
Screen Shot 2017-09-27 at 17.55.37.png
Merci
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von specialized ()