(Swift) 如何为单独的 iCarousels 分配特定数量的项目?
Posted
技术标签:
【中文标题】(Swift) 如何为单独的 iCarousels 分配特定数量的项目?【英文标题】:(Swift) How can you assign specific number of items for separate iCarousels? 【发布时间】:2016-09-27 22:33:08 【问题描述】:这个 iCarousel:https://github.com/nicklockwood/iCarousel
他在 Obj-C 中有一个“多个轮播”示例项目,但是项目的数量是随机的。
在项目数量功能中,我也无法明确说明我希望分配哪些 iCarousel 项目。它们似乎总是以随机顺序加载。我有 6 个顺便说一句。
这里是商店的图片。
我的其余代码与您的相同。 它不能在 numberOfItems 函数中引用 carouselView。
我的看法:
数据来源:
【问题讨论】:
【参考方案1】:iCarousel 实例作为参数传递给numberOfItemsInCarousel
函数。您可以使用它来确定在每种情况下哪个轮播请求项目数。比如:
class ViewController: UIViewController, iCarouselDataSource
@IBOutlet weak var carousel1: iCarousel!
@IBOutelt weak var carousel2: iCarousel!
var carousel1Items = [String]()
var carousel2Items = [String]()
func numberOfItemsInCarousel(carousel: iCarousel) -> Int
var numberOfItems = 0
switch carousel
case self.carousel1:
numberOfItems = self.carousel1Items.count
case self.carousel2:
numberOfItems = self.carousel2Items.count
default:
print("Unknown carousel!")
return numberOfItems
【讨论】:
我已将所有内容都包含在您的答案中。但是,“致命错误:在展开可选值时意外发现 nil”。这发生在案例行上。 我的代码假定您正在使用情节提要并已将轮播实例分配给 IBOutlets。如果您不使用情节提要并以其他方式创建轮播,则需要确保在这样做时设置属性(carousel1
等)。
我已将 IBOutlets 用于故事板。这里可能需要考虑一些事情。在轮播函数中: if carousel == carouselView1 可以正常工作。但是,这在 NumberOfItems 中不起作用。有什么我可以放入 print() 以查看存在的内容吗?
我的猜测是你的 outlet 是 nil 或者因为你没有链接它们或者你没有从故事板创建视图控制器。 switch/case 语句与嵌套的 if 语句相同。您可以在函数上设置断点并单步执行以查看发生了什么
我添加了我的网点和连接。仍然不知道为什么我不能像你在 numberOfItems 中那样引用它们。以上是关于(Swift) 如何为单独的 iCarousels 分配特定数量的项目?的主要内容,如果未能解决你的问题,请参考以下文章