gpt4 book ai didi

swift - iOS 11 Swift 中无法平滑展开 TextView

转载 作者:行者123 更新时间:2023-11-30 11:43:44 25 4
gpt4 key购买 nike

我尝试在单击“阅读更多”按钮时展开 TextView 。它适用于 iOS 11 以下的设备,但在 iOS 11 版本中无法非常平滑地展开。为什么?

当我点击“阅读更多”按钮时,将运行此代码。

tableView.beginUpdates()
let txtView = cell2.aboutTxtView!
let txtStr = cell2.aboutTxtView.text!
let btn = cell2.aboutReadBtn!

if self.aboutTag == 0{
let height = getRowHeightFromTextView(strText: txtStr, txtView: txtView)
cell2.aboutTxtView_HeightConstraint.constant = height
self.view.layoutIfNeeded()
btn.setTitle("Show Less", for: .normal)
self.aboutTag = 1
self.aboutHeight = 140.0 + height - 84.0
tableView.endUpdates()
}
else
{
cell2.aboutTxtView_HeightConstraint.constant = 84
self.view.layoutIfNeeded()
btn.setTitle("Read More", for: .normal)
self.aboutTag = 0
self.aboutHeight = 140.0
tableView.endUpdates()
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

if indexPath.section == 1
{
return aboutHeight
}
}

iOS 11以下版本

enter image description here

iOS 11版本

enter image description here

我尝试过的。

(1)

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

(2)

override func viewDidAppear(_ animated: Bool)
{
super.viewDidAppear(animated)

if #available(iOS 11, *)
{
self.tableView.contentInsetAdjustmentBehavior = .never
}
}

最佳答案

如果@Sid的回答不能解决您的问题。

您应该在 UI 中进行任何更新后调用layoutIfNeeded, self.view.layoutIfNeeded()。另外,使用主队列。

DispatchQueue.main.async {
self.view.layoutIfNeeded()
}

它将更新 View 框架。

关于swift - iOS 11 Swift 中无法平滑展开 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49063011/

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