我正在构建iOS今日小部件,在测试iOS 10时,我在小部件标题的右上角看到“显示更多”/“显示更少”按钮。如何删除此按钮?我正在使用Objective-C。
答案 0 :(得分:10)
在viewDidLoad
中,您可以设置最大的可用显示模式。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];
这将删除Show More / Less按钮,但它可能不是您想要的。紧凑视图允许的最大大小相当小。
您可以实施:
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
更新您的preferredContentSize
。 maxSize
参数将是activeDisplayMode
的最大允许大小。
答案 1 :(得分:10)
在iOS 10中,据我所知,show more选项是新的,我们无法将其删除,但我们可以根据需要进行修改。
以下代码将允许您自动调整Today小部件的大小。只需更改表或集合视图或项目中使用的任何内容即可。
static CGFloat padding = 25.0;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
// This will remove extra separators from tableview
self.articleTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
// Add the iOS 10 Show More ability
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {
if (activeDisplayMode == NCWidgetDisplayModeCompact){
// Changed to compact mode
self.preferredContentSize = maxSize;
}
else{
// Changed to expanded mode
self.preferredContentSize = CGSizeMake(self.articleTableView.contentSize.width, self.articleTableView.contentSize.height + padding);
}
}
答案 2 :(得分:2)
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]
可能是您正在寻找的内容,我会参考this
答案 3 :(得分:2)
可悲的是你无法隐藏它并且应该符合
lowered
未显示此控件的窗口小部件不是为iOS10构建的
答案 4 :(得分:1)
我知道原帖使用objective-c提到 但是如果有人需要快速回答,那么这就是
override func viewDidLoad()
{
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}
当设置为精简版时,应用程序将仅支持紧凑模式,即显示较少/显示节目按钮/功能将消失。
这里有一些documentation了解更多信息
答案 5 :(得分:0)
将这行代码放在widgetActiveDisplayModeDidChange委托方法中解决了我的问题。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
如果你想隐藏节目更多/显示更少的选项用NCWidgetDisplayModeCompact替换NCWidgetDisplayModeExpanded。
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize {
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}