我在UIView的一个单独的子类中创建了一个UIView,并使用了一个xib。
我在故事板中有一个带有UIView的UIViewController,我想为这个UIView设置自定义UIView。
我将故事板UIView中的类名修改为自定义UIView的类名。我在结果上获得了UIView,但是使用了自定义UIView的帧大小。我在自定义xib中添加了正确的约束。由于错误的框架等,一些触摸手势无法正常工作。
如果我做错了,请建议我。
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// Load the UIView from Interface Builder
[[NSBundle mainBundle] loadNibNamed:@"TMPhotoEdit" owner:self options:nil];
// Add UIView to current UIView object.
[self addSubview:self.view];
}
return self;
}
self.view是我为它创建变量的相同视图对象。
我希望框架设置与我在故事板中使用的框架相同。
使用代码使其工作的解决方案也对我有很大帮助。我的意思是,如果没有故事板中的IBOutlet,只需添加此UIView并设置一些框架。
如果我调用initWithFrame,我不能像上面的initWithCoder那样设置xib,如果我在代码中使用initWithFrame,则不会调用initWithCoder。
答案 0 :(得分:0)
假设您有一个想要大小相似的视图实例
self.view.frame = CGRectMake(otherView.frame.x, otherView.frame.y, otherView.frame.width, otherView.frame.height);
答案 1 :(得分:0)
实际上你正在做的事情是不正确的,但无论如何你应该像这样加载自定义视图笔尖
self.view = [[NSBundle mainBundle] loadNibNamed:@"TMPhotoEdit" owner:self options:nil][0];
这又不正确,为什么还需要呢?但它应该解决你的笔尖加载问题。