読者です 読者をやめる 読者になる 読者になる

cocoa

UIImageViewを丸くトリミングする

TweetBotのサムネイル表示のように、画像を丸くトリミングする方法を紹介します。 CALayerを使うと数行で実装出来るので便利です。とりあえずサンプルコード UIImage *circleImage = [UIImage imageNamed:@"test.png"]; UIImageView *circleImageView = [[UI…

-performSelector:withObject:afterDelay:を用いて、複数のアニメーションを実行するときの注意点

今回ははまった。なので共有として書いておく 以下のようなコードを書いていた [self performSelector:@selector(animate1) withObject:nil afterDelay:0.5f]; [self animate2]; [self performSelector:@selector(animate3) withObject:nil afterDelay:0.5f]…

iOSでEasing

iOSとくにUIKitを使っている場合、デフォルトではイージングが4種類しかありません。そこでおすすめなのが以下のイージングライブラリです。 https://github.com/bryanoltman/CAAnimation-EasingEquations:CAAnimation-EasingEquations 準備 QuartzCoreフレ…

ARC環境におけるNSTimerの再利用(再起動)

NSTimerは -invalidate メソッドをコールするとARCによって回収されてしまう。 なので、再起動のためには再度タイマーの内容を決定してやる必要がある。 具体的な方法を示す。適当なところで、NSTimer *timerのインスタンスを確保しておく。 そして、以下の…

UIScrollView に背景画像を設定する

#import <UIKit/UIKit.h> @interface UIScrollViewWithBGImage : UIViewController <UIScrollViewDelegate> { UIImageView *backgroundImageView; } @property (nonatomic, retain) UIScrollView *scrollView; @end 上のようなヘッダーにおいて、scrollViewプロパティに背景画像を追加する事を考え</uiscrollviewdelegate></uikit/uikit.h>…

UITableViewをアップデートする方法

UITableViewの表示を変更するときは、cellをリロードする必要がある。それには2つの方法があるので簡単にまとめ。 1. [tableView reloadData] //Do some changes [tableView reloadData]; reloadDataメソッドは、cellをメソッドが呼ばれた時点で完全にリロ…

UIScreenのboundsとapplicationFrameの違い

StatusBarの有無で画面の使い方が微妙に変わり、毎回よく分からなくなるのでメモ。 NSLog(@"bounds = %@",NSStringFromCGRect([UIScreen mainScreen].bounds)); NSLog(@"applicationFrame = %@", NSStringFromCGRect([UIScreen mainScreen].applicationFrame…

CookPad Hackason 2013

CookPad Hackason 2013に鎖国のメンバーで参加しました。今回はメンバーの一人が韓国で、一人が昼から深夜前まで居ないという状況でしたが、個人的には良い経験に成りました。 iOSに関してプログラムを書き始めて2年程度経ち、ある程度の事は出来ると考えて…

Frameを決定できるUITableViewController

UITableViewControllerのtableViewは、frameのサイズを変更する事が出来ません。 これだと不便なので、tableViewのサイズを変更出来るUIFlexibleTableViewクラスを作成しました。 ご自由にお使いください。CocoaExtention/Classes/UIFlexibleTableViewContro…

16進数のNSStringを数値に変換

float hexStringToFloat(NSString* str) { NSString *prefix = [str substringWithRange:NSMakeRange(0, 2)]; if(![prefix isEqualToString:@"0x"]) { str = [@"0x"stringByAppendingString:str]; } NSScanner* pScanner = [NSScannerscannerWithString: str…

cocoaにてAppDelegateの取得方法

AppDelegate *delegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; delegateの取得方法。忘れやすいのでメモ。

MediaPlayerViewController サンプル

iOSで動画再生(MPMoviePlayerController) MPMoviePlayerControllerを使うために、そのControllerを作成しなければなりません。 そのサンプルとして MediaPlayerViewController を作ります。自分で作る際に、 ・全画面で動画を再生したい ・画面をタップした…

CGRectFromString の実装を調べてみる

長いです。テストの内容なんてどうでも良いから早く実装を見せろと思った方は、まとめからどうぞ。 CGRect testRect = CGRectFromString(@"{{{0, 1}}, 2, {3, 4, 5}}"); CGRect testRect = CGRectFromString(@"{{{0, 1}}, 2, {3, 4}}"); CGRect testRect = C…

NSStringFrom~ and ~fromString

NSLog(@"orizin(%f:%f) size(%f:%f)", self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.width); これは冗長です。 NSLog(@"%@",NSStringFromCGRect(self.frame)); こちらを使いましょう。 UIKIT_EXTERN NSString *NSStri…