ios

同じiOSバージョンのシミュレータが重複して表示されてしまう場合の解決方法

ios

環境: Xcode7.0.1 Beta 版と GM をインストールしたら重複して表示されるようになってしまった。 iOSシミュレータを削除するには Xcode > Window > Devicesから削除できる。 削除したいデバイスがたくさんあって個別に面倒な場合は ~/Library/Developer/Core…

iOS シミュレータ・アプリのディレクトリの場所

ios

環境: Xcode7.1 アプリデータのディレクトリを調べる 例えば iOSシミュレータにインストールした、あるアプリのDocumentsディレクトリは以下のようになる。 ~/Library/Developer/CoreSimulator/Devices/CC8FA744-B3C2-4689-839F-33B504F6168A/data/Container…

iOS でファイル保存、読み込み

ios

環境: Swift2.0 アプリ内にデータを保存する場合、どこに保存するのかを調べた。 だいたい以下のディレクトリ(またはこれらの中に作成したサブディレクトリ)のどれかに保存することになるようだ。 Documents/ Library/ Library/Application Support/ Library…

Carthage を使ってライブラリを管理する

ios

環境: Xcode 7.0.1 Swift2.0 Carthage(カーセージって読むみたい)というライブラリ管理ツールを使ってみた。 CocoaPods と比べると ・CocoaPods では Static Library のlibPods.aを静的リンクしていたが 、Carthage はxcodebuildコマンドを使ってビルドし…

iOS9対応メモ

環境: Xcode7 GM iOS9 対応で行った作業メモ。 App Transport Security(ATS)対応 HTTPS 接続にする必要あり。今回はとりあえずHTTPを許可するようにInfo.plistに以下の手順で追加する。 NSAppTransportSecurityを Dictionary で追加。 その下でNSAllowsArbit…

よく使う Xcode のショートカットメモ

developer.apple.com Cmd + Ctrl + 左 or 右 超使う。ソースコード上の定義にジャンプしたり、戻ったり。 トラックパッドの左右スワイプでも同様なことができるがデカいファイル上で行うと固まったりするので、上のコマンドでやるほうがよい。 Cmd + b ビル…

Xcode の Localization でハマったのでメモ

環境: Xcode 6.1 iOS 8.1 Simulator 結論から言うと Xcode 6.1 と iOS 8.1 Simulator の環境で、 iOS Simulator の言語設定に対応したローカライズファイルLocalizable.stringsを用意しても反映されないバグがあるらしい。 ワークアラウンドとして iOS Simu…

NSUserDefaults を使ってアプリの初回起動判定を行う

環境:iOS Deployment Target 7.1 アプリの初回起動判定は NSUserDefaults でやるのがよいらしい。 以下のように NSUserDefaults を使って初回判定を行うメソッドを作った。 - (BOOL)isFirstRun { NSUserDefaults *userDefaults = [NSUserDefaults standardU…

UITextField の inputView に UIPickerView を設定する

環境:iOS Deployment Target 7.1 以前、UIPickerView をキーボードのように表示・非表示させるというエントリーを書いたがもっと簡単なやり方を知ったのでメモしておく。 まず、以前のやり方は完了ボタンとそれを置くビューを自分で作って、UIPickerView と…

画面の向きを固定して回転を禁止する

環境:Xcode6 画面の向きを固定して回転しないようにする。 Xcode の プロジェクト -> Targets -> General > Deployment info > Device Orientation で設定する。 Device Orientation 説明 Portrait 縦画面、ホームボタン下 Upside Down 縦画面、ホームボタ…

UITextField, UITextView がキーボードで隠れないようにする

環境:iOS Deployment Target 7.1 UITextField、UITextView は入力フィールドにフォーカスが当たると画面下からキーボードが現れるが、この時に入力フィールドが画面下側にある場合にキーボードの裏に隠れてしまう問題がある。 やりたいこと 1画面に複数の U…

UITableView の`scrollToRowAtIndexPath:atScrollPosition:animated:`でエラー

環境:iOS Deployment Target 7.1 UITableView でスクロール位置を画面上部に戻そうとしてscrollToRowAtIndexPath:atScrollPosition:animated:メソッドを使っていたのだが、レコード0件時にエラーが発生した。 コード NSIndexPath *indexPath = [NSIndexPath…

UIPickerView をキーボードのように表示・非表示させる

環境:iOS Deployment Target 7.1 やりたいこと: ボタンタップ時にキーボードが下からシュッと出てくるようにピッカーを表示させたい。 完了ボタンのタップで決定、ピッカー以外の部分をタップした時にはピッカーを隠す。 こんなかんじ。 やってること ピッ…

スクロール画面で固定されたビューを実現するには

環境:iOS Deployment Target 7.1 スクロールする画面上でも固定されてスクロールしない View を実装する方法。 UIScrollViewDelegate プロトコルを実装して、スクロールする度に呼ばれるscrollViewDidScroll:で scrollView.contentOffset プロパティの座標…

UIViewController で UITableView を実装する

環境:iOS Deployment Target 7.1 UITableViewController を使わず、UIViewController で UITableView を実装する方法について。 ヘッダファイルに UITableViewDelegate、UITableViewDataSource プロトコルを追加 UITableView オブジェクトを作成してdelegat…

UIScrollView を使って画面をスクロールできるようにする

コードで作成する時の話。 ポイントは UIScrollView オブジェクト作成時にinitWithFrameで指定した矩形のサイズより大きめなサイズをcontentSizeプロパティに設定すること。 - (void)viewDidLoad { [super viewDidLoad]; UIScrollView *scrollView = [[UIScr…

UIView の背景色をグラデーションにする

環境:iOS 7.1 UIView がコンポジションしている CALayer に以下のように設定すればOK。 CALayer でエラーになる場合はQuartzCore.frameworkを追加する。 Objective-C - (void)viewDidLoad { [super viewDidLoad]; CAGradientLayer *gLayer = [CAGradientLay…

UITableViewCell の高さを文字列の長さに応じて動的に変更する

環境:iOS SDK 7.1 UITableView の セル毎に呼ばれる Delegate メソッドのtableView:heightForRowAtIndexPath:の戻り値でセルの高さが決まる。 この時にそのセルに入れる文字列から高さを動的に変更する必要がある。 で、どうやるかというと NSString のboun…

ステータスバーの高さ、ナビゲーションバーの高さを取得する

ステータスバーの高さを取得する Objective-C float statusHeight = [[UIApplication sharedApplication] statusBarFrame].size.height; ナビゲーションバーの高さを取得する float navigationBarHeight = self.navigationController.navigationBar.frame.si…

画面遷移のメモ

環境:iOS SDK 7.1 UINavigationController での画面遷移 AppDelegate から初期画面のコントローラに遷移する 初期画面となる UIViewController を作成、それを使って UINavigationController を作成する。 そして UIWindow のrootViewControllerプロパティ…

UITextView で Placeholder を使う

環境:iOS SDK 7.1 UITextField には Placeholder が用意されているけど、UITextView にはないみたい。 以下の stackoverflow にそのものズバリな回答があったのでこれをそのまま使った。 ios - Placeholder in UITextView - Stack Overflow http://stackove…

ツールバーを非表示にする

環境:iOS SDK 7.1 UINavigationController に新たな画面となる UIViewController をpushViewControllerする前に、その UIViewController のhidesBottomBarWhenPushedプロパティにYES を設定すればよい。以降の画面では自動的にツールバーが非表示になる。 …

ツールバーを追加する方法

環境:iOS SDK 7.1 1. UINavigationController 管理下の場合 UINavigationController を使っている場合はすでにツールバーが組み込まれている。 デフォルトだと非表示となっているので以下のように ツールバーを表示したい UIViewController のviewDidLoadメ…

UIPickerView を試す

環境:iOS SDK 7.1 1. UIViewControllerを継承したPickerViewControllerクラスを作成する PickerViewController.h PickerViewController.m 2. AppDelegateクラスを修正し、PickerViewControllerに遷移するようにする。 AppDelegate.m #import "AppDelegate.h…

UIActionSheet を試す

環境:iOS SDK 7.1 1. UIViewControllerを継承したSampleViewControllerクラスを作成する SampleViewController.h SampleViewController.m 2. AppDelegateクラスを修正し、SampleViewControllerに遷移するようにする AppDelegate.m #import "AppDelegate.h" …