web-dev-qa-db-ja.com

iOS10のTodayウィジェットから[もっと見る]ボタンを非表示にする

IOS Todayウィジェットを作成していますが、iOS 10のテスト中に、ウィジェットヘッダーの右上に[もっと見る]/[減らす]ボタンが表示されます。このボタンを削除するにはどうすればよいですか?私はObjective-Cを使用しています。

11
Gison George

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);
   }
}
11
Moxarth

viewDidLoadでは、利用可能な最大の表示モードを設定できます。

_[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact];
_

これにより、[もっと見る/少なくする]ボタンが削除されますが、希望どおりでない場合があります。コンパクトビューの最大許容サイズはかなり小さいです。

以下を実装できます。

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

preferredContentSizeを更新します。 maxSizeパラメータは、activeDisplayModeの最大許容サイズになります。

10
jervine10

悲しいことに、あなたはそれを隠すことができず、

widgetActiveDisplayModeDidChange:withMaximumSize:

このコントロールを表示しないウィジェットはiOS10用にビルドされていません

2
Peter Lapisu
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]

おそらくあなたが探しているものです、私は参照します this

2
damiancesar

私は元の投稿がobjective-cを使用して言及していることを知っていますが、誰かがSwiftの答えを必要とする場合、ここにあります

override func viewDidLoad()
{
    super.viewDidLoad()
    self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}

コンパクトに設定すると、アプリはコンパクトモードのみをサポートします。つまり、表示を減らす/表示ボタンを表示する/機能がなくなります。

ここにいくつかあります ドキュメント 詳細については

1
CharlieNorris

このコード行をwidgetActiveDisplayModeDidChangeデリゲートメソッド内に配置すると、問題が解決しました。

[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];

Show more/show lessオプションを非表示にする場合は、NCWidgetDisplayModeExpandedをNCWidgetDisplayModeCompactに置き換えます。

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

    [self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];

}
0
iPhoneDeveloper