2015-09-20 3 views
0

У меня есть этот метод, когда я создаю draggableView. Я рядом с этим создал xib-файл, который я бы хотел добавить в качестве перехвата для этого draggableView. Как я могу это сделать? Причина, по которой я хочу сделать это, - это то, что я собираюсь создать много xib-файлов, чтобы содержимое менялось.Добавить xib-файл в объявление UIView

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.loadCards() 

} 

func createDraggableViewWithDataAtIndex(index: NSInteger) -> DraggableView { 
    let draggableView = DraggableView(frame: CGRectMake(12, 12, self.view.frame.width-24, self.view.frame.height-24-49-64)) 
    draggableView.layer.borderWidth = 1 
    draggableView.layer.borderColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.5).CGColor 
    draggableView.delegate = self 

    let subviewArray = NSBundle.mainBundle().loadNibNamed("AdViewController", owner: self, options: nil) 
    let mainView = subviewArray[0] as! UIView; 
    draggableView.addSubview(mainView); 


    return draggableView 
} 

func loadCards() -> Void { 
    if exampleCardLabels.count > 0 { 
     let numLoadedCardsCap = exampleCardLabels.count > MAX_BUFFER_SIZE ? MAX_BUFFER_SIZE : exampleCardLabels.count 
     for var i = 0; i < exampleCardLabels.count; i++ { 
      let newCard: DraggableView = self.createDraggableViewWithDataAtIndex(i) 

      allCards.append(newCard) 
      if i < numLoadedCardsCap { 
       loadedCards.append(newCard) 
      } 
     } 

     for var i = 0; i < loadedCards.count; i++ { 
      if i > 0 { 
       self.view.insertSubview(loadedCards[i], belowSubview: loadedCards[i - 1]) 
      } else { 
       self.view.addSubview(loadedCards[i]) 
      } 
      cardsLoadedIndex = cardsLoadedIndex + 1 
     } 
    } 
} 

До: enter image description here

После

enter image description here

ответ

1

Вот как добавить настраиваемое представление из XIB

let subviewArray = NSBundle.mainBundle().loadNibNamed("MyCustomView", owner: self, options: nil) 
    let mainView = subviewArray[0] as! UIView; 
    draggableView.addSubview(mainView); 
+0

Хм я пробовал, но посмотрел мой обновленный вопрос? Когда я добавляю код, он, кажется, добавляет его странно? draggableView - белый. почему он не добавляет его к этому –

+0

, можете ли вы разместить свой код, где вы добавляете xib? черный бит на снимке экрана - это вид, который вы добавляете? – keith

+0

Да, черный бит - это файл xib. да, я добавляю его сейчас –

0

Если я правильно понимаю, что вы хотите добавить MainView вашего XIb как подвид вашего draggableView? Если да просто получить вид из XIb:

let view = UINib(
      nibName: nibNamed, 
      bundle: bundle 
     ).instantiateWithOwner(nil, options: nil)[0] as? UIView 

А затем добавить его как подвид к вашему draggrableView

draggableView.addSubview(view) 

надеюсь, что это помогает.

+0

Хм я пробовал, но посмотрите мой обновленный вопрос? Когда я добавляю код, он, кажется, добавляет его странно? draggableView - белый. почему бы не добавить его к этому –