【问题标题】:not able to addsubview in ipad无法在 ipad 中添加子视图
【发布时间】:2012-07-04 10:29:14
【问题描述】:

我有一个 homeview 控制器,我要在其中添加一个子视图。该子视图是 uiview 的子类。但 homeview 控制器不显示子视图。

这是我的代码。

#import "HomeViewController.h"
@interface HomeViewController : UIViewController {

DetailView *viewDetailFinal;
}
@property (nonatomic, retain) DetailView *viewDetailFinal;


@implementation HomeViewController

@synthesize viewDetailFinal;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    viewDetailFinal = [[DetailView alloc] initWithFrame:CGRectMake(0, 0, 588, 899)];
}
return self;
}

- (void)viewDidLoad
{
   [self.view addSubview:viewDetailFinal];
}

#import "DetailView.h"

@interface DetailView : UIView{

}

-(void) loadView:(NSString *)str;


@implementation DetailView

- (id)initWithFrame:(CGRect)frame
{
   self = [super initWithFrame:frame];
   if (self) {
    // Initialization code

    [self loadView:@"my test text"];
   }
   return self;
}

-(void) loadView:(NSString *)str {
    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 150, 25)];
    [lbl setFont:[UIFont boldSystemFontOfSize:12.0]];
    [lbl setTextColor:[UIColor blackColor]];
    [lbl setTextAlignment:UITextAlignmentCenter];
    [lbl setBackgroundColor:[UIColor blueColor]];
    [lbl setText:str];
}

谁能指出我哪里错了?任何帮助将不胜感激。

【问题讨论】:

  • 你如何展示 HomeViewController?
  • 在我的 mainwindow.xib 一个导航控制器中。 homeviewcontroller 是它的默认控制器。

标签: iphone ios ipad uiview uiviewcontroller


【解决方案1】:

首先将标签添加到您的视图中,如下所示......

-(void) loadView:(NSString *)str {
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 150, 25)];
[lbl setFont:[UIFont boldSystemFontOfSize:12.0]];
[lbl setTextColor:[UIColor blackColor]];
[lbl setTextAlignment:UITextAlignmentCenter];
[lbl setBackgroundColor:[UIColor blueColor]];
[lbl setText:str];

[self addSubView:lbl];
}

然后在你看来你的 Controller 类的 load 方法......

- (void)viewDidLoad
{
    viewDetailFinal  = [[DetailView  alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,460.0)];
    viewDetailFinal.backgroundColor = [UIColor redColor]; //Just for your verification
    [self.view addSubview:viewDetailFinal];
}

希望对你有帮助

【讨论】:

  • 嗨阿布舍克。谢谢回答。是的,它对我有用。问题是我的 homeviewcontroller 的 initWithNibName 方法没有被调用。
【解决方案2】:

-(void) loadView:(NSString *)str 方法的实现中,您没有将标签添加到视图中:

-(void) loadView:(NSString *)str {
    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 150, 25)];
    [lbl setFont:[UIFont boldSystemFontOfSize:12.0]];
    [lbl setTextColor:[UIColor blackColor]];
    [lbl setTextAlignment:UITextAlignmentCenter];
    [lbl setBackgroundColor:[UIColor blueColor]];
    [lbl setText:str];

    [self addSubView:lbl];
}

【讨论】:

  • 你好。谢谢回答。我试过了,但它不起作用。
猜你喜欢
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多