gpt4 book ai didi

ios - UITextView 在 iPhone 5/5s 上切断文本,但在 iPhone 6 上没有

转载 作者:行者123 更新时间:2023-11-28 09:04:54 25 4
gpt4 key购买 nike

我正在为我根据 API 的响应创建的属性字符串调整 UITextView 的大小,该字符串最多可以具有三个不同的属性;一般条款、运输条款和返回条款。如果缺少其中一个属性,我不会在最终文本中显示该属性。在 iPhone 6 上,一切都按应有的方式显示,但在 iPhone 5/5s 上,最后几行文本被截断了。 textView 正在正确调整大小,但直到最后几行才显示所有文本。我希望我可以展示照片,但显然我没有足够的代表来这样做。我搜索过的所有其他类似问题都不完全相同,而且这些解决方案似乎都无法解决问题。这是我在 Swift 中的代码,用于创建属性字符串和调整 textView 的大小。任何帮助将不胜感激。

这是格式化属性字符串的代码

var termStrings = String()

if (!generalString.isEqualToString("")) {
termStrings += "GENERAL:\n\(generalString)\n\n"
}

if (!shippingString.isEqualToString("")) {
termStrings += "SHIPPING:\n\(shippingString)\n\n"
}

if (!returnString.isEqualToString("")) {
termStrings += "RETURNS:\n\(returnString)"
}

var newNSString = termStrings as NSString

var attTermString = NSMutableAttributedString(string: termStrings as String)

let boldAttribute = [NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont.boldSystemFontOfSize(14)]
let subtitleAttribute = [NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont.systemFontOfSize(12)]
let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle]
var paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 5.0

if (!generalString.isEqualToString("")) {
attTermString.addAttributes(boldAttribute, range: newNSString.rangeOfString("GENERAL:"))
attTermString.addAttribute(NSUnderlineStyleAttributeName, value: NSUnderlineStyle.StyleSingle.rawValue, range: newNSString.rangeOfString("GENERAL:"))
attTermString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: newNSString.rangeOfString("GENERAL:\n"))
attTermString.addAttributes(subtitleAttribute, range: newNSString.rangeOfString("\(generalString)"))
}

if (!shippingString.isEqualToString("")) {
attTermString.addAttributes(boldAttribute, range: newNSString.rangeOfString("SHIPPING:"))
attTermString.addAttribute(NSUnderlineStyleAttributeName, value: NSUnderlineStyle.StyleSingle.rawValue, range: newNSString.rangeOfString("SHIPPING:"))
attTermString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: newNSString.rangeOfString("SHIPPING:\n"))
attTermString.addAttributes(subtitleAttribute, range: newNSString.rangeOfString("\(shippingString)"))
}

if (!returnString.isEqualToString("")) {
attTermString.addAttributes(boldAttribute, range: newNSString.rangeOfString("RETURNS:"))
attTermString.addAttribute(NSUnderlineStyleAttributeName, value: NSUnderlineStyle.StyleSingle.rawValue, range: newNSString.rangeOfString("RETURNS:"))
attTermString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: newNSString.rangeOfString("RETURNS:\n"))
attTermString.addAttributes(subtitleAttribute, range: newNSString.rangeOfString("\(returnString)"))
}

changeTextViewHeight(attTermString, width: textView.frame.size.width)

这是我调整 textView 大小的代码

func changeTextViewHeight(attributedString: NSMutableAttributedString, width: CGFloat) {
textView.attributedText = attributedString
var newSize: CGSize = textView.sizeThatFits(CGSizeMake(width, CGFloat(FLT_MAX)))
var newFrame: CGRect = textView.frame
newFrame.size = CGSizeMake(CGFloat(fmaxf((Float)(newSize.width), (Float)(width))), newSize.height)
textView.frame = newFrame
}

最佳答案

解决步骤(这将设置 UITextView 在 5/5 秒内滚动到顶部)

  • 禁用 UITextView ScrollView
  • 设置 scrollRectToVisible 启用
  • UITextView 滚动

swift 3:

self.yourTextView.isScrollEnabled = false
let rect:CGRect = CGRect(x: 0, y: 0, width: 1, height: 1)
self.yourTextView.scrollRectToVisible(rect, animated: false)
self.yourTextView.isScrollEnabled = true

这对我有用。

关于ios - UITextView 在 iPhone 5/5s 上切断文本,但在 iPhone 6 上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31064508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com