2016-08-19 56 views
0

我試圖製作基本上是圓形進度欄的自定義故事板組件。我製作了我的自定義類(稱爲CircularProgressView),它繼承了UIView。然後,我在界面構建器中創建一個UIView,並將其作爲CircualProgressView類的一個實例。在界面生成器Circular Progress View in Interface Builder中,所有事情都按照預期呈現,但是當我在模擬器或我的設備(iPhone 6)中加載應用程序時,它根本就沒有。我試過在函數initWithFrameinitWithCoderdrawRect內設置斷點,但沒有達到斷點。爲什麼??在模擬器中未創建自定義UIView故事板類,在界面生成器中顯示

任何幫助非常感謝!

+0

檢查您的自定義類是否以編程方式重新創建UIView並且不會丟棄您的故事板xib – zizoodiesel

+0

您可以驗證ViewController是否正在加載。製作一個IBOutlet並驗證它是否存活? –

回答

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中使用此視圖,則會出現此問題。

希望這可以幫助你。

+0

你好!感謝您的回答!我目前不在我的工作區,但稍後會嘗試您的解決方案。 – user1568364