gpt4 book ai didi

ios - 新的 iOS 10 Today Widget/Extension 的高度是多少?

转载 作者:IT王子 更新时间:2023-10-29 05:08:58 28 4
gpt4 key购买 nike

我正在构建一个 iOS Today 小部件,在针对 iOS 10 进行测试时,我注意到所有小部件现在都被赋予了相同的高度(以前的版本允许开发人员设置高度)。理想的高度是多少/处理这个新限制的最佳做法是什么?我很快,我没有使用自动布局 fyi。提前致谢!

最佳答案

在 iOS 10 中,默认情况下,今天小部件的高度是固定的。此外,折叠小部件的最小高度是有限的。

A collapsed widget is the height of roughly two and a half table rows. An expanded widget is ideally no taller than the height of the screen.

这些笔记来自iOS Human Interface Guidelines .

我们可以通过以下方式来改变它。

首先,您需要在viewDidLoad 中添加这些代码,这使您的小部件支持iOS 10 中新增的两种模式。

快速版本:

if #available(iOSApplicationExtension 10.0, *) { // Xcode would suggest you implement this.
extensionContext?.widgetLargestAvailableDisplayMode = .expanded
} else {
// Fallback on earlier versions
}

ObjC 版本:

self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded;

然后像这样实现协议(protocol)方法:

快速版本:

@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
preferredContentSize = CGSize(width: 0.0, height: 200.0)
} else if activeDisplayMode == .compact {
preferredContentSize = maxSize
}
}

ObjC 版本:

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {
if (activeDisplayMode == NCWidgetDisplayModeExpanded) {
self.preferredContentSize = CGSizeMake(0.0, 200.0);
} else if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = maxSize;
}
}

运行您的目标,您将在小部件的右上角看到一个“显示更多”按钮。点击它,您将看到变化。

查看更多详情:How to resize the height of widget in iOS 10?

关于ios - 新的 iOS 10 Today Widget/Extension 的高度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129047/

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