javaSEがiOSアプリデザイン、開発に挑む日記

本業java SEがswift、デザインの勉強したことを残しておくブログ

2015-06-01から1ヶ月間の記事一覧

swift UILongPressGestureRecognizerのアクション

UILongPressGestureRecognizerの長押し認識を使う時、長押しを認識と離す時で2回アクションが起きるのを制御するメモ senderのstateで判別ができる。 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view…

天気アプリ ScrollWeather

アプリ申請通ったので展開。 OpenWeatherMapの天気情報を使用した天気アプリ。 現在地はもちろん、全世界の天気を表示できる。 ただ、日本に特化していないので他のアプリとの差異がかなりあったり... こういうふわっとしたテイストが好きな方はどうぞ。 無…

英和辞書データ

アプリを作る中で、そもそもコンテンツがないといくら作りたくても作れないわけで。 そんな中、パブリックドメインの英和辞書データを配布しているところが。 無料 英和辞書データ ダウンロード - Web便利ツールkujirahand.com パブリックドメインだから本当…

swift storyboardで画面サイズに合わせたviewのconstraints

複数機種で綺麗にレイアウトしたい時、 それぞれの機種に対してstoryboardファイルを作るか、コードの中でガリガリやらなきゃいけないかと思っていたら、やり方があった。 親viewに対してEqual Height(width)を指定 画面サイズに合わせて伸縮する辺を親view…

swift ロケールから自分のタイムゾーンへ時刻変換

端末のロケールからユーザのタイムゾーンに時刻変換するメソッド。 GMTで送られてくるAPIを使用するときとかに。 func changeDateFormatM(dt_txt:String)->String{ var date_formatter: NSDateFormatter = NSDateFormatter() date_formatter.timeZone = NSTi…

swift nilチェック

nilになることがあって落ちるのを防ぐためにif文でチェックする方法。 記述方法をいつも忘れて調べなおしてるのでメモ。 以下はappDelegateに持たせた変数がまだセットしてない(nil)かチェックしてから使用する例 if let nilCheck = appDelegate.isMapSelect…

swift 標準マップの表示

純正マップになってから全然使ってないけど ライセンスとかアクセスが制限されない(と思われる)ので ちょっと使いたいぐらいなら良いかも import UIKit import MapKit class SelectLocationViewController: UIViewController, MKMapViewDelegate { var lat =…

swift iAd 一番簡単な方法

テスト的に入れてみたiAd 収益でクラスとかではないので一番簡単な方法で実施 iAdフレームワークのリンク プロジェクトの「general」→「Linked Frameworks and Libraries」で「+」クリック iAdで検索して「iAd Framework」 を追加 iAdフレームワークをインポ…

swift 天気アプリ

先月までにと、自分的ノルマで作成してきたアプリを申請 取得した天気をスクロール形式で表示。 背景はひとつながりの草原で、 天気のよって暗さとかが変わるような仕様。 結局こんな感じで落ち着く。 審査が早く通れば良いなと。 にしても、 openWetherMap…

swift 文字列の一部を取得

javaだとsubsting()で考えるまでもないけど swiftだと型の罠にハマったのでメモ。 let hh:String = (formatDate as NSString).substringWithRange(NSRange(location: 6,length: 2)) as String substringWithRange()で指定部分を取得できるけど 型がNSString…

swift Reachabilityを使う

iOS Developer Libraryに通信状況を確認できる「Reachability」なるライブラリがあった。 誰かのライブラリを使わないって良い... ライセンスとかで使用条件を確認したりするのが結構疲れる... Reachabilitydeveloper.apple.com そして、テストして気がつい…

swift 画面間で値を共有する

今までは画面遷移の際にセグエのidentiferから次の画面を特定して、次の画面のパラメータに値を入れて... とか面倒くさいことやってたけどこんな簡単に出来るんだったとは... AppDelegateに変数定義 class AppDelegate: UIResponder, UIApplicationDelegate …

swift 画像をリサイズして使用する

Retina対応とかで2xのサイズで用意してサイズは1xとしたいことが多かったりする。 let orgImg = UIImage(named: "orgImg.png") let resizedSize = CGSizeMake(365, 400); UIGraphicsBeginImageContext(resizedSize); orgImg?.drawInRect(CGRectMake(0, 0, re…

swift フォアグラウンド状態になった時に処理を実施

バックグラウンドにしたアプリを再度フォアグラウンドにした時に更新させるのを検討した時、意外に面倒くさかったのでメモ。 AppDelegate.swiftのapplicationWillEnterForeground()でviewControllerに通知を送るようにする func applicationWillEnterForegro…

NSURLSessionの後処理にラベル更新処理書いたらダメ

ちゃんと理解して使っていないからこうなるんですが 引っかかったのでメモ JSONで天気情報をAPIで取得して画面表示 を検討して色々やっていたら ちゃんとコンソールのログで取得できているのに 画面表示には数十秒遅れて反映される現象が... let url = NSURL…

swift UIScrollViewでスクロールさせるのにcontentSizeの指定が必要

勘違いしていてハマったのでメモ。 画面の一部がスクロールするような感じにしたくて UIScrollViewをstoryboardに配置して実行。 最初、UIScrollView自体のサイズがスクロールするサイズだと思っていて スクロールしないで悩んでたら そうじゃなくて、 「con…

Illustratorで同じ処理を繰り返すショートカット

感動して、ちゃんと覚えておこうと思ったのでメモ。 太陽マークを書こうとして 円の周りにうまいこと三角を並べられないかなぁと調査した結果 回転ツールと同じ作業を繰り返すショートカットで簡単射掛けることが発覚。 回転ツール 回転ツールを選択する前に…

swift viewDidLoadとviewDidAppear

webページでは毎回表示時に画面更新が走るけど iOSアプリでは最初に用意されているviewDidLoad()では最初の一回目の表示にしか呼ばれない。 そんな時はviewDidAppear()を追加。 画面遷移して戻ってくる際に呼ばれるので 別画面でデータ更新して戻る。戻ると…

swift アプリでテキストの文字数制限

簡単だけどメモ htmlみたいにmaxlengthで制御できたら良いのに... func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { // 変更後の内容を作成する var tmpStr = textField…

非表示フォルダ内に移動するショートカットキー

iOSシミュレータでテストしてる時にFMDBとか使ってる場合、 DBファイルを指定して中身を見たい時に ライブラリフォルダが非表示設定で 見えてもダブルクリックじゃ移動できない時のショートカット command + shift + g 出てくる入力欄に移動するフォルダ名を…

swift viewを最背面、最前面に移動

viewを最背面、最前面に持ってくメソッド名が統一感なくて覚えにくいのでメモ。 最背面 self.view.sendSubviewToBack(targetView) 最前面 self.view.bringSubviewToFront(targetView) viewの削除メソッドもそうだけど、パッと見て分かりにくいのが多い気がす…

swift 遷移先にパラメータを引き継ぐ

一般的なhttpのリクエスト、レスポンスのような感じではないようで。 storyboardでセグエをつなぐ セグエのIdentifierに名前を付ける 遷移元で以下ソースを記述 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.id…