gpt4 book ai didi

iOS - 今天扩展 'show more' 和 'show less' 状态不正确。折叠显示 'show less' - 需要多次按下才能修复

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:15:52 30 4
gpt4 key购买 nike

我有一个扩展程序,我已经拆掉了裸机,它使自己处于不正确的状态,当它折叠时它会说“显示更少”。

这有两种情况

  1. 我使用“显示更多”展开扩展,然后离开屏幕。我打开另一个应用程序,然后返回到扩展程序。扩展的扩展在我面前明显崩溃了,但仍然说“少显示”
  2. 我推送一个新版本来测试更改。它将比以前扩展,当新构建推送时,它会折叠并显示“显示更少”

我还尝试让另一个扩展程序处于事件状态(天气)并展开它,并且一旦扩展它总是保持展开状态,而我的扩展程序正在折叠并显示错误的状态。

无论是否存在天气小部件,都会发生这种情况。

当我在代码中放置断点时,在步骤 #1 中再次调用 ViewDidLoad。

这是代码,我一点一点地删除了所有内容,直到剩下的所有内容仍然导致问题。

class TodayController: UICollectionViewController, NCWidgetProviding {

let reuseIdentifier = "TimeGridCell"

override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}

override func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}

override func collectionView(_ collectionView: UICollectionView,
numberOfItemsInSection section: Int) -> Int {
return 3
}

override func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier,
for: indexPath) as! ArtistTimeGridTableViewCell
cell.nameLabel.text = "blah blah"
return cell
}

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
self.preferredContentSize = (self.collectionView?.contentSize)!
} else if activeDisplayMode == .compact {
self.preferredContentSize = maxSize

}
}
}

请注意,如果我删除 self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded,那么我根本无法选择展开或折叠,因此这是必需的。

这是问题的图片。第一张图片正确,第二张图片不正确。

Fake expanded Fake expanded

最佳答案

发现另一个人在谈论按钮无法正常工作的问题,他们的解决方案似乎对我有用,尽管没有很好的解释到底出了什么问题?看起来这可能是操作系统错误?

iOS10 widget "Show more" "Show less" bug

延迟设置内容大小可防止出现此问题

    let deadlineTime = DispatchTime.now() + 0.2
if activeDisplayMode == .expanded {
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
self.preferredContentSize = (self.collectionView?.contentSize)!
}
} else if activeDisplayMode == .compact {
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
self.preferredContentSize = maxSize
}
}

关于iOS - 今天扩展 'show more' 和 'show less' 状态不正确。折叠显示 'show less' - 需要多次按下才能修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393506/

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