在 iOS10 中的“今日”小部件中隐藏 "Show More" 按钮
Hide "Show More" button from Today widget in iOS10
我正在构建一个 iOS 今天小部件,在测试 iOS 10 时,我在小部件的右上角看到一个 "Show More" / "Show Less" 按钮header。我怎样才能删除这个按钮?我正在使用 Objective-C.
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]
可能是你要找的,我会参考this
在viewDidLoad
中您可以设置最大的可用显示模式。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];
这将删除显示 More/Less 按钮,但它可能不是您想要的。紧凑视图的最大允许大小相当小。
您可以实施:
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
更新您的 preferredContentSize
。 maxSize
参数将是 activeDisplayMode
.
的最大允许大小
遗憾的是你不能隐藏它并且应该符合
widgetActiveDisplayModeDidChange:withMaximumSize:
不显示此控件的小部件不是为 iOS10
构建的
在iOS10中,据我所知,show more这个选项是新增的,我们不能删除它,但是我们可以根据需要修改它。
以下代码将允许您自动调整“今日”小部件的大小。只需更改 table 或集合视图或您在项目中使用的任何内容。
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);
}
}
我知道原来 post 提到使用 objective-c
但如果有人需要 swift 答案,这里是
override func viewDidLoad()
{
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}
当设置为紧凑时,应用程序将仅支持紧凑模式,即 show less/show show buttons/functionality 将消失。
这里有一些 documentation 以获取更多信息
将这行代码放在 widgetActiveDisplayModeDidChange 委托方法中解决了我的问题。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
如果您想隐藏显示更多/显示更少选项,请将 NCWidgetDisplayModeExpanded 替换为 NCWidgetDisplayModeCompact。
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize {
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}
我正在构建一个 iOS 今天小部件,在测试 iOS 10 时,我在小部件的右上角看到一个 "Show More" / "Show Less" 按钮header。我怎样才能删除这个按钮?我正在使用 Objective-C.
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]
可能是你要找的,我会参考this
在viewDidLoad
中您可以设置最大的可用显示模式。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];
这将删除显示 More/Less 按钮,但它可能不是您想要的。紧凑视图的最大允许大小相当小。
您可以实施:
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
更新您的 preferredContentSize
。 maxSize
参数将是 activeDisplayMode
.
遗憾的是你不能隐藏它并且应该符合
widgetActiveDisplayModeDidChange:withMaximumSize:
不显示此控件的小部件不是为 iOS10
构建的在iOS10中,据我所知,show more这个选项是新增的,我们不能删除它,但是我们可以根据需要修改它。
以下代码将允许您自动调整“今日”小部件的大小。只需更改 table 或集合视图或您在项目中使用的任何内容。
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);
}
}
我知道原来 post 提到使用 objective-c 但如果有人需要 swift 答案,这里是
override func viewDidLoad()
{
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}
当设置为紧凑时,应用程序将仅支持紧凑模式,即 show less/show show buttons/functionality 将消失。
这里有一些 documentation 以获取更多信息
将这行代码放在 widgetActiveDisplayModeDidChange 委托方法中解决了我的问题。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
如果您想隐藏显示更多/显示更少选项,请将 NCWidgetDisplayModeExpanded 替换为 NCWidgetDisplayModeCompact。
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize {
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}