为iCarousel使用自定义UIView

时间:2016-04-17 12:38:43

标签: ios iphone swift uiview icarousel

我正在尝试使用iCarousel来显示一系列项目。我想为此重用一个故事板UIView,所以我创建了一个UIView的自定义类。我还为此创建了一个XIB文件,并根据我的喜好设置了视图。然后我把我的视角连接到课堂上。我现在正在尝试重新创建一个UIView,所以我可以将它用于我的旋转木马。这是我自定义的UIView类:

Custom Class

这是我的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

}

从我的致命错误中可以看出,删除按钮不存在。这与我的其他元素相同。没有子视图出现:

Subviews

如何让我的iCarousel上显示子视图?谢谢你的帮助。

2 个答案:

答案 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)
}

我真的不明白你想要做什么,"打印一个按钮?"但这可能是一种合适的方式。希望这有助于... :))))