【问题标题】:Loading another NIB into one subview of a UIVIEW将另一个 NIB 加载到 UIVIEW 的一个子视图中
【发布时间】:2011-11-20 16:05:40
【问题描述】:

我有一个简单的问题,我无法在整个网站上看到它的回答,

一个以UIView为主的XIB文件,

其中有另一个 UIView 连接到一个 IBoutlet,因此我可以稍后分配它以从另一个 XIB 文件加载视图。那个任务不起作用..它仍然是空白的......

@interface Subclass : UIViewController { 
        UIView *view1; 
}
@property (nonatomic,retain) IBOutlet UIView *view1;
@end

我将 view1 链接到 xib 文件中的子视图 在 initWithNibName 的实现中,我正在加载其他 XIB 文件并使用它的视图并将其分配给 view1。还是不行……

detailControler = [[XibViewControler alloc] initWithNibName:@"XibViewControler" bundle:nil];
 //one aproach
[self.view1 addSubview: detailControler.view]; 
//another aproach
[self setView1:detailControler.view];

如果我以编程方式将子视图添加到 [self.view addSubview:detailControler.view] 并为其设置框架,它将进入全屏状态,并隐藏原始视图。

我也有一种不同的方法,但没有奏效 How to load multiple views on each button tap when using a UISegmentedVIew

【问题讨论】:

    标签: iphone objective-c uiview xib subview


    【解决方案1】:

    这就是我通常在另一个视图中设置UIView 的方式,尽管我不完全确定这是否是最佳做法或类似的东西:

    if(newViewController == nil){
      newViewController = [[NewViewController alloc] initWithCoder:nil];
    }
    newViewController.view.autoresizingMask = UIViewAutoresizingNone;
    if([newViewController.view superview] == nil){
      [view1 addSubview:newViewController.view];
    }
    

    希望有帮助!

    【讨论】:

    • 用它工作的一个新的干净项目来做这个,它只是在我的 70 类项目中不起作用......由于某种原因.. 奇怪的是我确实从头开始创建视图我对新项目做了...
    • 这很奇怪。至少它正在处理一个新项目!
    • 好的,我已经在主项目中添加了它并且它可以工作..实际上它从初学者开始工作......它没有做什么它不会剪辑框架边界 [detailPatientController.查看 setFrame:CGRectMake(50, 50, 100, 50)]; ..它忽略了 100,50 ..但它确实偏离了 50,50 ......在单独的项目中..它实际上剪裁在框架边界上没有问题..你知道我必须禁用或启用什么设置?
    • 好的,我知道问题出在哪里了……背景 UIImageView 没有剪辑到帧……它设置为缩放以适应……它会显示为原始。我也必须重新定义它的框架:)
    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多