【发布时间】:2012-05-14 02:25:51
【问题描述】:
我有一个即将完成的 iOS 5 项目,但是到处都缺少一个相同的视图。它是标准 NavigationBar 的替代品,您可以通过滑动在导航层次结构中“返回”,并且动画效果很好。
好的,因为很难通过代码进行布局,所以我创建了空的 IB 文档 (HeaderView.xib),其中有一个包含子视图等的视图。 我之前有动画代码,所以我只是创建了一个 UIView 子类(“HRAnimationView”)(并在 xib 的检查器“自定义类”字段中写了它的名称,也将子视图连接到插座)使用方法:
- (void)loadAnimation {…}
还有第二个(这是完成动画的委托方法):
- (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 也不起作用,owner:self.headerView 也不起作用)
...日志只是给了我:
<HRAnimationView: 0x3f1890; frame = (0 0; 240 49); autoresize = RM+BM; layer = <CALayer: 0x3f18d0>>
…
有什么问题??也没有编译失败!
我不明白,为什么我的 xib 完全一文不值?!
【问题讨论】:
-
不应该 isKindOfClass 检查 HRAnimationView 而不是 UIView
-
嗯.. 谢谢,我会检查一下。但它不应该因为 HRAnimationView 是 UIView 的子类而工作吗?
-
应该,但我认为你想确保它是正确的类来获得预期的行为......
标签: objective-c ios interface-builder storyboard xib