(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 分配特定数量的项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iCarousel 的气缸中的车轮旋转设置计时器

如何为iCarousel iphone中不同位置的图像实现删除功能

具有每个图像反射的 iCarousel

如何用动画重新加载 iCarousel?

iCarousel Swift 示例的编程实现

如何通过 swift 在 iCarousel 库中使用 .Wrap 选项?