在模拟器中未创建自定义UIView故事板类,在界面生成器中显示
问题描述:
我试图制作基本上是圆形进度栏的自定义故事板组件。我制作了我的自定义类(称为CircularProgressView),它继承了UIView。然后,我在界面构建器中创建一个UIView,并将其作为CircualProgressView类的一个实例。在界面生成器中,所有事情都按照预期呈现,但是当我在模拟器或我的设备(iPhone 6)中加载应用程序时,它根本就没有。我试过在函数
initWithFrame
,initWithCoder
和drawRect
内设置断点,但没有达到断点。为什么??在模拟器中未创建自定义UIView故事板类,在界面生成器中显示
任何帮助非常感谢!
答
我也遇到这个问题一次,所以我在我的UIView类没有,我写我的自定义初始化这是如下:
-(id) initAndConfigure{
if (![self.subviews count])
{
NSBundle *mainBundle = [NSBundle mainBundle];
NSArray *loadedViews = [mainBundle loadNibNamed:@"YourNibName" owner:nil options:nil];
PlayerControlView *loadedView = [loadedViews firstObject];
loadedView.frame = self.frame;
loadedView.autoresizingMask = self.autoresizingMask;
loadedView.translatesAutoresizingMaskIntoConstraints =
self.translatesAutoresizingMaskIntoConstraints;
for (NSLayoutConstraint *constraint in self.constraints)
{
id firstItem = constraint.firstItem;
if (firstItem == self)
{
firstItem = loadedView;
}
id secondItem = constraint.secondItem;
if (secondItem == self)
{
secondItem = loadedView;
}
[loadedView addConstraint:
[NSLayoutConstraint constraintWithItem:firstItem
attribute:constraint.firstAttribute
relatedBy:constraint.relation
toItem:secondItem
attribute:constraint.secondAttribute
multiplier:constraint.multiplier
constant:constraint.constant]];
}
return loadedView;
}
[self configureView];
return self;
}
[self configureView]
功能是用来配置其他视图中的项目。
在.xib中创建UIView,并且如果有人尝试使用 在其他.xib中使用此视图,则会出现此问题。
希望这可以帮助你。
+0
你好!感谢您的回答!我目前不在我的工作区,但稍后会尝试您的解决方案。 – user1568364
检查您的自定义类是否以编程方式重新创建UIView并且不会丢弃您的故事板xib – zizoodiesel
您可以验证ViewController是否正在加载。制作一个IBOutlet并验证它是否存活? –