以下是代码:
#import "LoginView.h"
@implementation LoginView
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setup];
}
return self;
}
-(void) setup{
[[NSBundle mainBundle] loadNibNamed:@"LoginView" owner:self options:nil];
self.bounds = self.loginView.bounds;
[self addSubview:self.loginView];
}
现在我创建了一个视图控制器并为其添加了一个UIView。在viewWillAppear中,我正在尝试将xib文件加载到视图控制器中定义的UIView中。
-(void)viewWillAppear:(BOOL)animated{
self.containerView.layer.borderColor = [UIColor blackColor].CGColor;
self.containerView.layer.borderWidth = 2.0f;
LoginView *loginView = [[LoginView alloc] initWithFrame:CGRectMake(self.containerView.frame.origin.x,self.containerView.frame.origin.y, self.containerView.frame.size.width, self.containerView.frame.size.height)];
[self.containerView addSubview:loginView];
}
但是,xib文件超出了我定义的容器视图的UIView。我在ViewController中将containerView链接到UIView。
@property(nonatomic, weak) IBOutlet UIView *containerView;
任何人都可以帮助我为什么我得到这个输出?我需要在ViewController中的containerView中获取自定义uiview。就像文本字段和按钮应该在黑色边框内。
答案 0 :(得分:1)
在容器视图中添加视图时,x和y应为0,0
你需要替换它:
LoginView *loginView = [[LoginView alloc] initWithFrame:CGRectMake(self.containerView.frame.origin.x,self.containerView.frame.origin.y, self.containerView.frame.size.width, self.containerView.frame.size.height)];
由此:
LoginView *loginView = [[LoginView alloc] initWithFrame:CGRectMake(0,0, self.containerView.frame.size.width, self.containerView.frame.size.height)];
希望这有帮助!