我正在尝试使用iCarousel来显示一系列项目。我想为此重用一个故事板UIView,所以我创建了一个UIView的自定义类。我还为此创建了一个XIB文件,并根据我的喜好设置了视图。然后我把我的视角连接到课堂上。我现在正在尝试重新创建一个UIView,所以我可以将它用于我的旋转木马。这是我自定义的UIView类:
这是我的Carousel的代码:
func numberOfItemsInCarousel(carousel: iCarousel) -> Int {
return costs.count
}
func carousel(carousel: iCarousel, viewForItemAtIndex index: Int, reusingView view: UIView?) -> UIView {
let rView = ReturnView(frame: CGRectMake(0, 0, 220, 220))
rView.backgroundColor = UIColor.greenColor()
print(rView.deleteBtn)//fatal error: Unexpectedly found nil when unwrapping an optional value
return rView
}
从我的致命错误中可以看出,删除按钮不存在。这与我的其他元素相同。没有子视图出现:
如何让我的iCarousel上显示子视图?谢谢你的帮助。
答案 0 :(得分:0)
在你的轮播功能中尝试这个
{
var myView : UIView
if(myView != nil)
{
myView = view as! ReturnView
}
else{
var topLevelObjects : NSArray = NSBundle.mainBundle().loadNibNamed("your_xib_name", owner: self, options: nil)
myView = topLevelObjects.objectAtIndex(0) as! ReturnView
}
return myView }
您需要在当前视图的顶部加载来自ur xib的视图。确保您已标记自定义视图的所有者,您已创建为要添加轮播的PRESENT视图控制器
答案 1 :(得分:0)
试试这个:
rView.addSubview(myButtonName)
以及致命错误:在展开可选值时出乎意料地发现nil'试试这个:
if deleteBtn != nil{
print(rView.deleteBtn)
}
我真的不明白你想要做什么,"打印一个按钮?"但这可能是一种合适的方式。希望这有助于... :))))