iOS5添加和管理UIView类
我已经创建了一个uivew类和一个.xib。在这个.xib视图中,我将其设置为尺寸为400x200的自由形式,并将其分配给具有相同名称的自定义类: 故事板:blogView 类文件:blogView.h和blogView.m 在.xib中,我添加了一个标签和一个文本字段,并将它们链接到.h文件中的变量,请参见下面的代码 blogCont.hiOS5添加和管理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
#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)];