iCarouselビューにXIB UIを使用してカスタムビューを追加しようとしていますが、初期化して実行すると、カルーセルビューのサブビューの幅が自動的に変更されます。iCarouselカスタムビューxibはサブビュー幅を自動的に変更します
func carousel(carousel: iCarousel!, viewForItemAtIndex index: Int, reusingView view: UIView!) -> UIView! {
var itemView: ProfileQuestionView
//create new view if no view is available for recycling
if (view == nil) {
itemView = UINib.init(nibName: "ProfileQuestionView", bundle: nil).instantiateWithOwner(self, options: nil)[0] as! ProfileQuestionView
itemView.frame = CGRect.init(x: 20, y: 10, width: self.view.frame.width-40, height: self.carouselView.frame.height-20)
itemView.layer.borderColor = UIColor.clearColor().CGColor
itemView.layer.borderWidth = 0.5
itemView.layer.cornerRadius = 5.0;
itemView.layoutIfNeeded()
} else {
//get a reference to the label in the recycled view
itemView = view as! ProfileQuestionView
itemView.layoutIfNeeded()
}
return itemView
}
この問題が表示されている理由を知ってはいけません。
carouselView.type = iCarouselType.Rotary
あなたにタグを付けてアイテムビュー 'itemView.tag = 1'はfrの作成後に表示されますom nibと 'else'はタグ' itemView =(view?.viewWithTag(1))! 'でブロックをブロックします。それが問題を解決するかどうかを確認してください。 'layoutIfNeeded'を呼び出す必要はありません –