Я создал класс UIVeiw и .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
blogCont.m
#import "newsStoryView.h"
@implementation blogCont
@synthesize lbBlogDate;
@synthesize txtBlogTitle;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code place a log to see if it loads
NSLog(@"View Loaded");
}
return self;
}
@end
Теперь в моем главном файле viewController.m я добавил следующий код для инициализации этого класса представления и добавил цвет фона, чтобы посмотреть, загружается ли он.
viewController.m
UIView *blogCont = [[blogView alloc] init];
blogCont.backgroundColor = [UIColor purpleColor];
[subview addSubview:blogCont];
Теперь, когда я запускаю это, все работает хорошо, но поскольку я не вижу фиолетовый фон, он выглядит так, как будто представление не загружается, но в журнале я вижу сообщение NSLog, которое у меня есть в этом представлении NSLog (@ " Просмотр загружен "); так что, кажется, это инициирует это, но я не могу на всю жизнь заставить это отобразить?
Теперь, если я немного изменю код для моего основного поля View Controller.m на:
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', но я думал, что все это будет установлено в настройках .xib, так нет необходимости делать это?
ТАК, как я могу создать этот класс внешнего представления и назначить его в другое представление, а затем манипулировать его данными, поскольку доступ к метке в .xib с помощью blogCont.lbBlogDate.text, кажется, не работает, вероятно, это так, но как Я не могу просмотреть это, я не могу подтвердить это.
Что я делаю не так?
Спасибо