月別アーカイブ: 2015年10月

アプリケーションバッジ 通知の許可

iPhoneのホーム画面でアプリアイコンに数字のバッジを付けたかったのだが、どーしても付けることが出来なかった。
そもそも、delegeteとか、notificationが理解できてないのが悪いのだが、
それにしてもまる二日ほど悩んだ。

参考サイト
iOS8 ローカル通知の実装についてメモ。 | scherzi a parte

なんとなく、iPhone本体(もしくはシミュレータ)側で通知の許可ができてないのかも、、、と思ってたが、設定画面見ても分からず。

色々とさまよった挙句上記サイトに行き着いた。

AppDelegate.mで下記のように通知の許可を求めれば良いようだ。

アプリケーションバッジ 通知の許可
これで通知の許可を出せばアイコンにバッジが付いた。

【NSUserDefaults】とmutable

以前データ保存にNSUserDefaultsを使うと書いた。
データの保存にはNSUserDefaults

前回はただの数値の保存だったが今回は配列、それもmutableな配列で入れ子構造の物を保存した。

参考サイト。
Objective-C – NSUserdefaultsにNSMutablearrayを格納する/読み出す – Qiita
NSMutableArrayをユーザーデフォルトに保存する方法 – Dolice Lab
NSUserDefaultsはどこまで保存できるかチェック(2) – iPhoneアプリ開発まっしぐら★ – iPhoneアプリ開発グループ

今回はNSMutableArrayの中にNSDictionary形式のものが入っている。

結果的にuserDefaultsに入れたものはmutableでなくなるらしい。
で、取り出したものを[[defaults arrayForKey:key] mutableCopy] とすれば NSMutableArray に変換出来るらしい。

以下、今回使ったコードの一部

自分用の備忘録なので間違ってたらゴメンね。

xcodeでクリップボードへコピー

プログラム内で任意の文字列をクリップボードにコピーしたかったので検索。

下記サイトを参考にしました。
Objective-Cで指定した文字列をペーストボードにコピーする – Dolice Lab

これだけだとユーザーがわかりにくいのでアラートビューを出すと良いかも。

3.5インチの時は無し

iPhoneの画面サイズはすっかり大きくなった。
大きいサイズでレイアウトしていると3.5インチに収まらくなる時がある。

そんな時はこっそり広告とかを消しちゃおう。

良いのかな?

追記
参考ページ
Auto Layoutでsubviewを動的に非表示にしたときのマージンをどうにかする – 悪あがきプログラマー

マージンのプロパティを作って消したらなお良し。

adMobでスマートバナーとか広告サイズがわからんかった。

adMobをつかってアプリに広告をいれた。

まずここを読んてその通りにやったら320*50の広告は難なく出来た。
スタートガイド  |  iOS 向け Mobile Ads SDK  |  Google Developers

それ以外のサイズの広告は?
と、こちらを読んでみた。
バナー広告のカスタマイズ  |  iOS 向け Mobile Ads SDK  |  Google Developers

しかしながら、「広告サイズの定数値」を設定する場所が分からない。

ここに↓

これを↓

こう↓挿入してもダメ。

んでもっていろいろ〜いろいろ〜検索した所、こちら↓で
ios – Admob smart banner ads not updating on device rotation – Stack Overflow

self.gadBannerView.adSize = kGADAdSizeSmartBannerPortrait;

というのを見つけた。

なのでこう↓いう書き方をして、

GADBannerViewをautolayoutでサイズが変わるようにしたら変化させる事が出来た。

こんなんで良いのかな?

スマートバナーについて追記しました。
adMobでスマートバナー、ふたたび | iPhoneアプリ備忘録

UIPickerViewで時間を入力。

UIDatePickerは日時を扱うことが出来ます。
UIDatePickerModeCountDownTimerを使えば何時間何分という時間を扱うことも出来ます。

しかし、UIDatePickerModeCountDownTimerでは秒数まで入力することが出来ません。
なので、UIpickerViewを使って何時間何分何秒という時間を入力してみたいと思います。

ちなみにここ数回の記事同様に下からヌッと出す仕様になっています。

こんな感じになります。

UIPickerViewで時間を入力。

またNSlogで秒数に換算した値も出るようにしてあります。

UIPickerViewを2つ作る。

前回のUIPickerViewを2つ表示しました。

参考サイトは、前回と同じくコチラです。
テキストフィールドをタップして、キーボードの代わりにpickerViewやdatePickerを出す – デビューが遅すぎたびび子ママのプログラム奮闘記
【Xcode】PickerViewを1つのビューで2つ〜複数設置する | iDEA CLOUD/dev

Storyboardでテキストフィールドを2つ作り、ViewContorollerとつなぎます。

UIPickerViewにタグを付けて複数に対応しています。

列数、行数、表示する文字列の指定をUIPickerViewごとに変えるにはifかswichで対応します。

こんな感じになります。
UIPickerViewを2つ作る。

ま、いろんなやり方がありますよね。

UIPickerViewも下から出す。

引き続きUIPickerViewも下から出します。

参考サイトは、コチラです。
テキストフィールドをタップして、キーボードの代わりにpickerViewやdatePickerを出す – デビューが遅すぎたびび子ママのプログラム奮闘記
【Xcode】PickerViewを1つのビューで2つ〜複数設置する | iDEA CLOUD/dev

Storyboardでテキストフィールドを作り、ViewContorollerとつなぎます。

UIPickerViewDelegate,UIPickerViewDataSourceの指定と、列数、行数、表示する文字列の指定も必要です。

こんな感じになるはずです。

UIPickerViewも下から出す。

むっつかしーい。

UIDatePickerModeCountDownTimer

前回に続きUIDatePickerについて。

UIDatePickerのUIDatePickerModeCountDownTimerの情報ってあんまりないよね。

こちらのサイトを参考にしました。
UIDatePickerModeCountDownTimerで値を設定/取得する方法 – colori
また、秒数と時間の変換は、こちらを参考にしました。
NSLog(@”%.2d時%.2d分%.2d秒”,hourTime,minutTime,secondTime);

前回のコードをちょっと変えてみました。
UIDatePickerModeCountDownTimerは分単位までで秒までいじれないのが残念。

UIDatePickerModeCountDownTimer

UIDatePickerModeCountDownTimerの値は秒数で、countDownDurationプロパティに入ってる。
setCountDownDurationプロパティで数値をセットすることも出来ます。