Cocoa touch 以编程方式更新nib的框架和内容

Cocoa touch 以编程方式更新nib的框架和内容,cocoa-touch,ios7,xcode5,uilabel,xib,Cocoa Touch,Ios7,Xcode5,Uilabel,Xib,我有一个简单的笔尖,里面有两个UILabels 在一个场景中,我想根据应用程序的状态在底部添加一个UILabel。是否可以通过动态/编程方式向nib添加内容,以及如何添加内容?您应该通过代码(即与.nib关联的ViewController)执行此操作 在视图控制器的类中,在头文件中添加几个UILabel实例变量,即 @interface MyVC : UIViewController { UILabel* conditionalLabel; } ... 然后,在.m实现文件中 @impl

我有一个简单的笔尖,里面有两个
UILabel
s


在一个场景中,我想根据应用程序的状态在底部添加一个
UILabel
。是否可以通过动态/编程方式向nib添加内容,以及如何添加内容?

您应该通过代码(即与.nib关联的ViewController)执行此操作

在视图控制器的类中,在头文件中添加几个UILabel实例变量,即

@interface MyVC : UIViewController {
   UILabel* conditionalLabel;
} ...
然后,在.m实现文件中

@implementation MyVC : UIViewController {
    -(void)viewDidAppear:(BOOL)animated {
         if(myConditionToShowLabel) {
            if(!conditionalLabel) {
               conditionalLabel = [[UILabel alloc] initWithFrame: CGRectMake(x, y, width, height)];
               [self.view addSubView:conditionalLabel];
            } else {
               [conditionalLabel removeFromSuperView];
               [self.view addSubView:conditionalLabel];
            }
        }
     }
记住在XCode:-)的NIB编辑器中将view controller类设置为MyVC


这样做是可行的,这是完全正常的做法:-)单凭NIB很难创建动态用户界面有时候你需要“开始编码”。

你可以通过编程方式在视图中添加UILabel。执行此操作的最佳方法是查看显示方法

比如说,

-(void)viewDidAppear

{

[super viewDidAppear];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMinX(self.view.frame),     CGRectGetMaxY(self.view.frame)-30, 200, 30)];

[self.view addSubView:label];

} 
标签将显示在视图的底部