在模拟器中未创建自定义UIView故事板类,在界面生成器中显示

问题描述:

我试图制作基本上是圆形进度栏的自定义故事板组件。我制作了我的自定义类(称为CircularProgressView),它继承了UIView。然后,我在界面构建器中创建一个UIView,并将其作为CircualProgressView类的一个实例。在界面生成器Circular Progress View in Interface Builder中,所有事情都按照预期呈现,但是当我在模拟器或我的设备(iPhone 6)中加载应用程序时,它根本就没有。我试过在函数initWithFrameinitWithCoderdrawRect内设置断点,但没有达到断点。为什么??在模拟器中未创建自定义UIView故事板类,在界面生成器中显示

任何帮助非常感谢!

+0

检查您的自定义类是否以编程方式重新创建UIView并且不会丢弃您的故事板xib – zizoodiesel

+0

您可以验证ViewController是否正在加载。制作一个IBOutlet并验证它是否存活? –

我也遇到这个问题一次,所以我在我的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