我正在努力改变我的iOS 10小部件在紧凑模式下的高度。
我得到的只是一个空的小部件,里面没有视图,但是,无论我为紧凑高度设置什么,它似乎都忽略了它。
下面是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize{
if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = CGSizeMake(0, 50);
}
else{
self.preferredContentSize = CGSizeMake(0, 200);
}
}
这会不会是测试版软件的问题?我正在使用Xcode 8测试版和iOS 10测试版7。
4条答案
按热度按时间6uxekuva1#
在
viewDidAppear
或之后设置preferredContentSize
。我猜小工具会在视图出现之前调整大小。小工具的宽度不是SCREEN_WIDTH,因为iPhone屏幕边缘之间的间隙。6tr1vspr2#
根据WWDC 2016的What's new in Cocoa Touch会议(大约44:00):
现在我们有一个用户控制的大小。紧凑模式,这是固定高度和扩展模式,这是可变高度。
因此,为
NCWidgetDisplayModeCompact
设置一个preferredContentSize
似乎完全被忽略了(固定大小似乎是110pts)。kxe2p93d3#
在SWIFT 3中:
TodayViewController的以下属性将返回紧凑模式的最大大小:
unftdfkk4#
1)在
viewDidLoad
中将显示模式设置为NCWidgetDisplayModeExpanded
2)实现此协议方法