監視オブジェクトの追加 [self addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:NULL]; 監視オブジェクトの受信 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)objec…
self.view.autoresizingMask = UIViewAutoresizingNone;
#import "DDLog.h" #import "DDTTYLogger.h" #ifdef DEBUG static const int ddLogLevel = LOG_LEVEL_VERBOSE; #else static const int ddLogLevel = LOG_LEVEL_OFF; #endif
SDWebImage の downloadWithURL:options:progress:completed: を使う。 [[SDWebImageManager sharedManager] downloadWithURL:imageURL options:SDWebImageHighPriority progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheTy…
高さが固定じゃなく、セルの内容毎に高さが変わる場合がありますよね。そういう場合には Auto Layout で上下の Constraints を指定しつつ、systemLayoutSizeFittingSize: メソッドを使うと簡単に高さが取得出来ました(ちょっと処理が重い?)。 - (CGFloat)…
UITableView でも UIScrollView でも同じように設定できるっぽい。 scrollView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 50.0f, 0); scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0, 0.0, 50.0f, 0); 参考:UIScrollViewに余白を設定する
こんなカテゴリを用意しておくと楽かも。 - (BOOL)lxx_empty { return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0); }
そんなことってあると思います。でも普通に見ようとすると、 (lldb) p tableView.bounds error: unsupported expression with unknown type error: unsupported expression with unknown type error: 2 errors parsing expression となってしまって見れませ…
layoutSubviews はビューを addSubview したときやビューの frame を変更したとき(親ビューの layoutSubviews 経由、画面回転時など)に呼ばれる。大抵意識することなく必要な時に呼ばれるけど、任意のタイミングで呼びたいときには setNeedsLayout を呼ぶ…
[NSString stringWithFormat:@"%d", 10]; // int から NSString に [@10 stringValue]; // NSNumber から NSString に [@"hoge" intValue]; // NSString から int に
アイコンにバッジを表示する。 // int を指定する [UIApplication sharedApplication].applicationIconBadgeNumber = 10; タブにバッジを表示する。 // NSString を指定する self.navigationController.tabBarItem.badgeValue = [NSString stringWithFormat:…
- (void)viewDidLoad { [super viewDidLoad]; [self registerForKeyboardNotifications]; } // キーボードの表示/非表示の通知を受け取る - (void)registerForKeyboardNotifications { [[NSNotificationCenter defaultCenter] addObserver:self selector:@se…
例えば UIAlertView を利用する場合、 こんな感じで使える。便利〜。 #import "UIAlertView+BlocksKit.h" [UIAlertView bk_showAlertViewWithTitle:@"title" message:@"message" cancelButtonTitle:@"cancel" otherButtonTitles:@[@"ok"] handler:^(UIAlertV…
遷移元を viewController 、表示したモーダルを modalViewController とすると viewController.presentedViewController // modalViewController modalViewController.presentingViewController // viewController ( modalViewController を表示しているビュ…
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; ModalViewController *modalViewController = [storyboard instantiateViewControllerWithIdentifier:@"ModalViewController"]; [self presentViewController:modalViewC…
CGRect //対象オブジェクトの位置とサイズの両方を管理するクラス CGPoint //対象オブジェクトの位置を管理するクラス CGSize //対象オブジェクトのサイズを管理するクラ 詳細については このページ が参考になる。
translucent を設定するとタブバーを半透明にすることが出来、タブバーの下に tableView が潜りこむようになります。iOS7からはこれがデフォルトの挙動。 self.tabBarController.tabBar.alpha = 0.5; self.tabBarController.tabBar.translucent = NO; self.t…
責任範囲を明確にして粗結合なアプリにしたいと思っている今日この頃。ViewController で何でもやらせたいくない。View では表示だけをさせたい。ロジックは Model にやらせたい。etc... いろいろありますが、こういう問題を解決するにはこの辺をうまく使え…
NSLog(@"isMainThread:%d", [NSThread isMainThread]);
わかったらここに書きたい。
詳しくはこちらを参照。ある要素を基準として、オフセットを指定するだけ〜 座標をオフセット指定で操作できるCGRectOffset - hachinoBlog http://hachinobu.hateblo.jp/entry/2014/02/09/223213
タイトルの通りですが、UILongPressGestureRecognizer を使ってイベントを登録するとなぜかイベントが二重に呼ばれてしまうので困っていました。なんと、長押ししたタイミングで発火するものと、指を話したときに発火するものがあるみたいですね。なんやこの…
dequeueReusableCellWithIdentifier するときには UITableViewCell の Identifier を設定しておかないといけないよ、って話。
1) 適当な xib ファイル(今回は CustomCell.xib というのを作成した)を作成する。ここでデザインは行う。2) CustomCell.xib の UILabel などをカスタマイズするために、UITableViewCell を継承したカスタムセルを作成する(今回は CustomTableViewCell と…
NSUserDefaults にデフォルトで保存できるのは NSString や NSDictionary など一部のもののみなので、自作クラスのオブジェクトを保存するためには NSData (バリナリ) にシリアライズしてあげる必要がある。 シリアライズして NSUserDefaults に保存する // …
以下の2つの設定を info.plist に追加するだけ。 View controller-based status bar appearance // NO Status bar style // UIStatusBarStyleLightContent
UITableViewController の refreshControl っていうプロパティにセットするだけ!簡単すぎてビックリ!以前は大変だったみたいだけど、iOS6 から簡単になったみたいですね〜 - (void)viewDidLoad { [super viewDidLoad]; self.refreshControl = [[UIRefreshC…
scrollToRowAtIndexPath:atScrollPosition:animated: メソッドで任意のセルの場所までスクロールできる。 int section = [self.tableView numberOfSections] - 1; int row = [self.tableView numberOfRowsInSection:section] - 1; NSIndexPath *indexPath = …
コントローラで UIView を addSubview したりするじゃないですか。この UIView をあとから利用したい場合にどうやって取ってきたら良いのかという話。タグを使って #define LABEL_TAG 1 - (void)viewDidLoad { [super viewDidLoad]; UILabel *label = [[UILa…