在我的主要的viewController,我有這樣的:如何初始化一個UIView
// .h
#import "YNSlidingMenu.h"
@interface YNAddNoteViewController : UIViewController
@property (nonatomic, strong) YNSlidingMenu *slidingMenu;
@end
// .m
- (void)setUpSlidingMenu{
_slidingMenu = [[YNSlidingMenu alloc]init];
[self.view addSubview:_slidingMenu];
}
在YNSlidingMenu.m,我有這樣的:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self configureView];
}
return self;
}
- (id)init{
self = [super init];
if (self) {
NSLog(@"init");
}
return self;
}
- (void)configureView{
NSLog(@"configureView");
self.rect = CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 40);
}
YNSlidingMenu將根據獲得其框架本身的內容,所以我不想在我的viewController上用initWithFrame
進行初始化。
我需要做什麼? NSLog(@"init");
不會被調用。我如何初始化我的自定義視圖,而無需從我的viewController設置框架?
「 - setUpSlidingMenu」是否從某處被調用? – theMikeSwan
是的,viewDidLoad。 –
在YNSlidingMenu的'initWithFrame:'添加一個斷點或NSLog()'來查看它是否被調用,如果是的話,框架是什麼。你應該在視圖控制器的'setUpSlidingMenu'中做同樣的事情,以確保它被調用。 – theMikeSwan