Bal*_*cze 16 objective-c ios ios10 ios10-today-widget
我正在努力在紧凑模式下改变我的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);
}
}
Run Code Online (Sandbox Code Playgroud)
这可能是测试版软件的问题吗?我在Xcode 8 beta和iOS 10 beta 7上.
spa*_*sas 20
根据WWDC 2016的Cocoa Touch会议中的新内容(大约44:00):
现在我们有一个用户控制的大小.紧凑模式,固定高度和可变高度的扩展模式.
因此,设置一个preferredContentSize
for 似乎NCWidgetDisplayModeCompact
被完全忽略(固定大小似乎是110pts).
小智 7
1)设定的显示模式,NCWidgetDisplayModeExpanded
在viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
}
Run Code Online (Sandbox Code Playgroud)
2)实现此协议方法
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize){
if (activeDisplayMode == NCWidgetDisplayMode.compact) {
self.preferredContentSize = maxSize;
}
else {
self.preferredContentSize = CGSize(width: 0, height: 200);
}
}
Run Code Online (Sandbox Code Playgroud)
在SWIFT 3中:
您的TodayViewController的以下属性将返回紧凑模式的最大大小:
private var maxSizeForCompactMode: CGFloat {
return extensionContext?.widgetMaximumSize(for: .compact).height ?? 0
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7321 次 |
最近记录: |