我试图创建一个基本上是循环进度条的自定义Storyboard组件。我已经创建了继承UIView的自定义类(称为CircularProgressView)。然后我在界面构建器中创建一个UIView,并使其成为我的CircualProgressView类的一个实例。所有内容都在Interface Builder 中按预期呈现,但是当我在模拟器或我的设备(iPhone 6)中加载应用程序时,它根本就不存在。我尝试在函数initWithFrame
,initWithCoder
和drawRect
中设置断点,但没有达到断点。为什么?
非常感谢任何帮助!
答案 0 :(得分:0)
我曾经遇到过这个问题,所以我在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中使用此视图。
希望这会对你有所帮助。