私は iOS 5 プロジェクトをほぼ完成させましたが、同じビューがどこにでも 1 つ欠けています。これは標準の NavigationBar に代わるもので、スワイプでナビゲーション階層に「戻る」ことができ、うまくアニメーション化されています。
わかりました。コードでレイアウトを行うのは難しいので、サブビューなどを含むビューがある空の IB ドキュメント (HeaderView.xib) を作成しました。以前にアニメーション コードを持っていたので、UIView サブクラス ("HRAnimationView") を作成しました。 (そして、xibのインスペクターの「カスタムクラス」フィールドにその名前を書き、サブビューをアウトレットに接続しました):
- (void)loadAnimation {…}
2 つ目 (これは完成したアニメーションのデリゲート メソッドです):
- (void)animationDidStop:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context {}
...ここですべてのアニメーションが行われ、終了するまで何度も呼び出されます...
ストーリーボードには、まったく同じ寸法 (およびそのアウトレット) を持つサブビューがあり、XIB を (対応するコントローラーの viewDidLoad メソッドで) ロードしたいと考えていました。
NSArray *bundle = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil];
HRAnimationView *view;
for (id object in bundle) {
NSLog(@"%@",object);
if ([object isKindOfClass:[UIView class]])
view = (HRAnimationView *)object;
}
self.headerView = view;
[self.view setNeedsDisplay];
[view loadAnimation];
しかし、headerView は EMTPY です!! (UIView *view も、所有者:self.headerView も機能しませんでした)
…ログには次のように表示されます:
<HRAnimationView: 0x3f1890; frame = (0 0; 240 49); autoresize = RM+BM; layer = <CALayer: 0x3f18d0>>
…</p>
何が問題ですか??コンパイルの失敗もありません!
私はそれを理解していません、なぜ私の場合、xibはまったく価値がないのですか?!