質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

1回答

2175閲覧

ios widget(Today Extension)の高さについて

noseride

総合スコア8

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2016/03/23 07:58

表題の件ですが、ドキュメントを調べると通知センターに表示できる領域は決まってしまっているようで、画面をスクロールせずに表示できる高さに設定しなければならないようです。
しかしながら、iPhoneにプリインストールされている株価アプリでは、すべてを表示の項目をタップすることで20件以上の項目を表示できていました。
uitableviewを使用して、frameやcontentsize、preferredContentSizeを変更しましたが、最大で表示できるのはせいぜい使用した端末の画面サイズくらいまでで、それ以降は表示されませんでした。
株価アプリのように表示領域を拡大する方向などご存知の方ご教授いただきたいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自分でも簡単なサンプルを作ってみて確認しましたが、おっしゃる通り株価の様に画面以上に広げることは
無理でした。

最大で表示できるのはせいぜい使用した端末の画面サイズくらいまでで、

それ以降は表示されませんでした。

しかし、画面サイズほぼいっぱいまでは以下のサイトの通りで出来ましたので。参考までにスクショとコードを載せておきます。
Today Extensionの高さの最大値の計算式

swift

1import UIKit 2import NotificationCenter 3 4class TodayViewController: UIViewController, NCWidgetProviding { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 self.preferredContentSize = CGSizeMake(0, 200) 9 } 10 11 func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) { 12 completionHandler(NCUpdateResult.NewData) 13 } 14 15 16 @IBAction func tapButton(sender: UIButton) { 17 // ボタン押下時 18 self.preferredContentSize = CGSizeMake(0, UIScreen.mainScreen().bounds.size.height - 126); 19 } 20 21 // Data Array 22 private lazy var dataArray: [String] = { [unowned self] in 23 var dataArray: [String] = [] 24 for i in 0..<20 { 25 dataArray.append("Table No : \(i)") 26 } 27 return dataArray 28 }() 29 30 // MARK: - TableView Delegate & DataSource 31 // Row Count 32 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 33 return dataArray.count 34 } 35 36 // Row Height 37 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 38 return 44 39 } 40 41 // Generate Cell 42 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 43 let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 44 cell.textLabel?.textColor = UIColor.redColor() 45 cell.textLabel?.text = dataArray[indexPath.row] 46 return cell 47 } 48}

表示時
image

ボタン押下時
image2

投稿2016/03/23 15:06

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noseride

2016/03/23 15:34

回答有難うございます。 やはり、画面サイズいっぱいまでが限界のようですね。 株価アプリではできているというのが悔しいところで、なんとかできないものか自分でも引き続き調べています。 単純に最大20件のコンテンツ情報を表示したいというだけなのですが、画面サイズいっぱいまでだとiPhone6だと11〜12件くらいの表示になってしまいます。
_Kentarou

2016/03/24 16:19

株価アプリは純正ですからね。。。普通と違うことができてもしょうが無いですね。 縦がダメなら横で!ってことで横スクロールなら制限は無いと思うのでご提案まで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問