8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

仙台iOS開発者勉強会(SWWDC)Advent Calendar 2014

Day 7

[iOS]ウィジェットのサイズとレイアウトについて

Posted at

iOS8からToday Extensionという機能が追加されました。
いわゆるウィジェットというものです。
iPhoneの画面上部から下に引っ張った時に出る「今日(Today)」タブにウィジェットを表示することが可能になりました。
自分も東北ずん子メモウィジェットを作るときに若干いじったので、改めてこちらのApple公式のページを参考に調べてみました。
アプリ作ってた当初はまだ英語の公式資料しか無かったのに、いつの間にか日本語訳されたものができていたので読みやすかったです。

##ウィジェットの最大サイズ
ウィジェットの最大のサイズは以下の画像の通りです。

###iPhone 6Plus
iPhone6Plus.png

###iPhone 5s
iPhone5s.png

機種によって画面のサイズは違いますが、画像の赤枠が最大サイズのようです。
画面一枚分のサイズですね。

##サイズとレイアウト

###preferredContentSize
ウィジェットで利用する画面サイズを指定するときに使います。
型はCGSizeなので使うときはこんな感じ

self.preferredContentSize = CGSizeMake(320, 568)

###widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets
ウィジェット画面の上下左右に余白を作るメソッド。
使うときはこんな感じ

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
    let edgeInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
    return edgeInsets
}

このメソッドはTodayViewController(ウィジェットのUIViewController)に採用されているNCWidgetProvidingプロトコルのメソッドなので、メソッドをそのままTodayViewController内に書くことで使えます。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?