Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS5添加和管理UIView类_Uiview_Ios5_Xcode4.2 - Fatal编程技术网

iOS5添加和管理UIView类

iOS5添加和管理UIView类,uiview,ios5,xcode4.2,Uiview,Ios5,Xcode4.2,我已经创建了一个uivew类和一个.xib。在这个.xib视图中,我将其设置为尺寸为400x200的自由形式,并将其分配给具有相同名称的自定义类: 故事板:blogView 类文件:blogView.h和blogView.m 在.xib中,我添加了一个标签和一个文本字段,并将它们链接到.h文件中的变量,请参见下面的代码 blogCont.h #import <UIKit/UIKit.h> @interface blogCont : UIView @property (s

我已经创建了一个uivew类和一个.xib。在这个.xib视图中,我将其设置为尺寸为400x200的自由形式,并将其分配给具有相同名称的自定义类:

故事板:blogView 类文件:blogView.h和blogView.m

在.xib中,我添加了一个标签和一个文本字段,并将它们链接到.h文件中的变量,请参见下面的代码

blogCont.h

  #import <UIKit/UIKit.h>

  @interface blogCont : UIView
  @property (strong, nonatomic) IBOutlet UILabel *lbBlogDate;
  @property (strong, nonatomic) IBOutlet UITextView *txtBlogTitle;

  @end
现在,在我的主viewController.m文件中,我向init这个视图类添加了以下代码,并添加了一个背景色以查看是否加载了它

viewController.m

 UIView *blogCont = [[blogView alloc] init];
 blogCont.backgroundColor = [UIColor purpleColor];
 [subview addSubview:blogCont];
现在,当我运行它时,一切都很好,但由于我没有看到紫色背景,看起来好像视图没有加载,但在日志中,我确实看到了这个视图中的NSLog消息NSLog@View加载;看起来是它引发了这一切,但我不能用我的生命来展示它

现在,如果我将主视图控制器.m fiel的代码稍微更改为:

 CGRect blogFrame;
 blogFrame.origin.x = 20;
 blogFrame.origin.y = 20;
 blogFrame.size = CGRectMake(400,200);;


 newsStoryView *blogCont = [[blogView alloc] blogFrame];
 blogCont.backgroundColor = [UIColor purpleColor];
 [subview addSubview:blogCont];
然后我的视图显示了一个漂亮的紫色框,所以当我设置一个框架大小,初始化视图时显示为“blogFrame”,bu tI认为所有这些都将在.xib设置中设置,所以不需要这样做

因此,如何创建这个外部视图类并将其分配到另一个视图中,然后操作其数据,因为使用blogCont.lbBlogDate.text访问.xib中的标签似乎不起作用,也就是说它可能起作用,但由于我无法查看它,我无法确认它

我做错了什么


谢谢

看来我几乎回答了我自己的问题,然后我做到了:

我没有在单独的类视图中设置大小,而是在初始化时要求一个大小:

  - (id)initWithFrame:(CGRect)frame
这是我要的尺码

因此,我可以对上述内容执行以下操作:

  - (id)init
{
    self = [super initWithFrame:CGRectMake(0, 0, 478, 220)];
  .... rest of code
在视图加载中设置大小

但我也可以在主视图控制器中初始化它时设置它,如下所示:

 newsStoryView *blogCont = [[blogView alloc]  initWithFrame:CGRectMake(0, 0, 400, 200)];
这是更好的,因为我可以控制每一个的位置。希望这对任何人都有帮助

 newsStoryView *blogCont = [[blogView alloc]  initWithFrame:CGRectMake(0, 0, 400, 200)];