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

时间:2014-06-09 08:24:51

标签: cocoa-touch ios7 xcode5 uilabel xib

我有一个简单的笔尖,里面有几个UILabel个。

在一种情况下,我想根据应用程序的状态向底部添加UILabel。是否可以动态/编程地将内容添加到笔尖以及如何添加?

2 个答案:

答案 0 :(得分:0)

您应该从代码中执行此操作,即与.nib相关联的ViewController。

在View Controller的类中,在头文件中添加一些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编辑器中将视图控制器类设置为MyVC: - )

这样的东西会起作用,而且这是完全正常的做法:-)单独使用NIB制作动态用户界面很困难 - 有时你需要得到#34;编码&#34 34。

答案 1 :(得分:0)

您可以以编程方式在视图中添加UILabel。最好的地方是 viewDidAppear 方法。

例如,

-(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];

} 

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