xyk blog

最近は iOS 開発の記事が多めです。

2014-09-01から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…

Heroku で Rails4 + MySQL を動かす

環境は Mac。 Heroku に Rails4 + MySQL で動くアプリをデプロイする。 DB はデフォルトでは PostgreSQL が使われるが、 MySQL が使えるアドオンの「ClearDB」を導入する。 事前準備 Heroku アカウントは取得済み。 「heroku toolbelt」のインストール。home…

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…

UITableViewのスクロール位置を一番上に戻す

環境:iOS SDK 7.1 UITableView (UIScrollView のサブクラス)でスクロールの位置を一番上に戻すやり方。 方法1. UIScrollView のcontentOffsetを設定する contentOffsetにcontentInset.top分を差し引いたオフセット(iOS7なら-64px)を設定する self.tableView…

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

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

UIRefreshControl で「引っ張って更新」を実装する

環境:iOS SDK 7.1 多くのアプリで見かける一覧画面で下に引っ張ると更新する機能を実装してみる。 iOS 6 から追加された UIRefreshControl を使って簡単にできた。 UITableViewController のviewDidLoadメソッド内で UIRefreshControl の初期化処理を行う。…

画面遷移のメモ

環境: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" …