从xib / nib加载视图时出现奇怪的行为

时间:2011-02-11 10:57:11

标签: ipad uiview interface-builder nib

从xib / nib加载视图时,我遇到了应用程序的奇怪行为。 我无法访问我的控件,我不再使用代码中的界面构建器 - 意味着我无法替换它们或更改文本和排序。 (控件仍将触发IBActions ...如按钮点击) 我已经用uisearchbar解决了这个问题。但广泛地删除和添加它并在Interface Builder中重新解决它以某种方式解决了这个问题。 iPad/iPhone uiSearchbar transparent background

我想避免在这个xib中使用每个血腥控件来做这个,所以我试着把它钉下来。我发现只要从xib加载一个视图,就会出现奇怪的行为。 (虽然已经在工作的控件,如uisearchbar,继续工作)

我做的是加载几个视图(来自同一个xib,viewcontroller是所有者)将它们放入scrollview中。这很好用..

这是代码:

UIView *viewContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 2304, 575)];
NSArray *nibViews1 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view1 = [nibViews1 objectAtIndex:1];
NSArray *nibViews2 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view2 = [nibViews2 objectAtIndex:1];
NSArray *nibViews3 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view3 = [nibViews3 objectAtIndex:1];
NSMutableArray *arrayViews = [[NSMutableArray alloc] init];
[arrayViews addObject:view1];
[arrayViews addObject:view2];
[arrayViews addObject:view3];
int intX = 1;
int intY = 1; 
for (UIView *viewImage in arrayViews)
{
    [viewImage setFrame:CGRectMake(intX, intY, 768, 575)];
    [viewContainer addSubview:viewImage];
    intX = intX + 768;
}

[arrayViews release];
[prescriptionScrollView setContentSize:CGSizeMake(2304, 575)];
[prescriptionScrollView addSubview:viewContainer];
[viewContainer release];
andy想法?建议?这是一个错误吗?

非常感谢。

祝你好运 Ť

2 个答案:

答案 0 :(得分:0)

作为对此的更新,我很确定这是一个错误。 将视图放入其自己的nib文件而不是从同一个xib中加载视图有助于摆脱这种奇怪的行为。 无论如何,我用苹果提出了一张支持票,但是由于一些愚蠢的原因两次拒绝我的票后,我厌倦了尝试。 感谢任何花时间阅读此内容的人。 干杯!

答案 1 :(得分:0)

您如何定义自己的网点?它们应该像这样定义:

@property (nonatomic, retain) IBOutlet MyView *myViewOutlet;

另请注意,应在viewDidUnload和dealloc中释放和填充插座。