IOS Todayウィジェットを作成していますが、iOS 10のテスト中に、ウィジェットヘッダーの右上に[もっと見る]/[減らす]ボタンが表示されます。このボタンを削除するにはどうすればよいですか?私はObjective-Cを使用しています。
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);
}
}
viewDidLoad
では、利用可能な最大の表示モードを設定できます。
_[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];
_
これにより、[もっと見る/少なくする]ボタンが削除されますが、希望どおりでない場合があります。コンパクトビューの最大許容サイズはかなり小さいです。
以下を実装できます。
-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
preferredContentSize
を更新します。 maxSize
パラメータは、activeDisplayMode
の最大許容サイズになります。
悲しいことに、あなたはそれを隠すことができず、
widgetActiveDisplayModeDidChange:withMaximumSize:
このコントロールを表示しないウィジェットはiOS10用にビルドされていません
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]
おそらくあなたが探しているものです、私は参照します this
私は元の投稿がobjective-cを使用して言及していることを知っていますが、誰かがSwiftの答えを必要とする場合、ここにあります
override func viewDidLoad()
{
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}
コンパクトに設定すると、アプリはコンパクトモードのみをサポートします。つまり、表示を減らす/表示ボタンを表示する/機能がなくなります。
ここにいくつかあります ドキュメント 詳細については
このコード行をwidgetActiveDisplayModeDidChangeデリゲートメソッド内に配置すると、問題が解決しました。
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
Show more/show lessオプションを非表示にする場合は、NCWidgetDisplayModeExpandedをNCWidgetDisplayModeCompactに置き換えます。
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
withMaximumSize:(CGSize)maxSize {
[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
}