//追記 2015/03/24
こちらの記事はiPhone3GS
時代に効果があったものになります。
たぶん今では気にしなくても問題ないと思われます。
//追記終わり
カスタムビューをIBで作成した場合、以下のようなコードでビューのインスタンス化を行うと思います。
//xibファイルからのインスタンス化
UINib *nib = [UINib nibWithNibName:@"hoge" bundle:nil];
UIView *hogeView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
UINib Class Referenceによるとメモリにキャッシュされるとあるが、プロファイラで見ると結構処理に時間が掛かっている場合があります。
なので以下のように明示的にキャッシュすることで、自分の場合体感で分かるほど動作が改善しました。
//キャッシュにある場合はそれを利用
UINib *nib = [[Huga sharedNSCache] objectForKey:@"hoge"];
if (nib == nil) {
nib = [UINib nibWithNibName:@"hoge" bundle:nil];
[[Huga sharedNSCache] setObject:nib forKey:@"hoge"];
}
実際にはnibのロード処理をUIViewのカテゴリとして実装すると使い勝手がいいと思います。