隐藏iOS10中今日小部件的“显示更多”按钮

时间:2016-07-21 05:49:01

标签: ios objective-c widget today-extension

我正在构建iOS今日小部件,在测试iOS 10时,我在小部件标题的右上角看到“显示更多”/“显示更少”按钮。如何删除此按钮?我正在使用Objective-C。

6 个答案:

答案 0 :(得分:10)

viewDidLoad中,您可以设置最大的可用显示模式。

[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];

这将删除Show More / Less按钮,但它可能不是您想要的。紧凑视图允许的最大大小相当小。

您可以实施:

-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize

更新您的preferredContentSizemaxSize参数将是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];

}