如何在 Swift 2.0 中 UIImages 数组的每个索引中存储多个 UIImages



首先,如果标题不是描述性的,我深表歉意。请自由感觉更改它更适合我的问题。

所以基本上,我有一个名为eventImagesUIImages数组。

在 obj-C 中,我声明了它并像这样初始化它:

NSArray *eventImages;
eventImages = @[ [UIImage imageNamed:@"lion_dance.jpg"],
                         [UIImage imageNamed:@"ivan_cheong.jpg"],
                         [UIImage imageNamed:@"tien_nguyen.jpg"],
                         [UIImage imageNamed:@"step_up.jpg"],
                         @[ [UIImage imageNamed:@"dj_happee.jpg"], [UIImage imageNamed:@"adam_cease.jpg"], [UIImage imageNamed:@"ao_dai.jpg"] ],
                         [UIImage imageNamed:@"california_summer.jpg"],
                         [UIImage imageNamed:@"question_mark"] ];

如您所见,在第 4 个索引处,我能够存储一个内部数组UIImages .

我想在 Swift 2.0 中实现这一目标

这是我到目前为止所做的:

var eventImages: [UIImage]?
eventImages = [UIImage(named: "lion_dance.jpg")!, 
UIImage(named: "ivan_cheong.jpg")!, UIImage(named: "tien_nguyen.jpg")!,   
UIImage(named: "step_up.jpg")!, [UIImage(named: "dj_happee.jpg")!, 
UIImage(named: "adam_cease.jpg")!, UIImage(named: "ao_dai.jpg")!], 
UIImage(named: "california_summer.jpg")!, UIImage(named: "question_mark")!]

但是,编译器给了我错误:

上下文类型"UIImage"不能与数组文本一起使用

如何在 Swift 中实现我在 Obj-C 中实现的目标?

谢谢

你可以这样做:

var eventImages = [UIImage(named: "lion_dance.jpg")!, 
UIImage(named: "ivan_cheong.jpg")!, UIImage(named: "tien_nguyen.jpg")!,   
UIImage(named: "step_up.jpg")!, [UIImage(named: "dj_happee.jpg")!, 
UIImage(named: "adam_cease.jpg")!, UIImage(named: "ao_dai.jpg")!], 
UIImage(named: "california_summer.jpg")!, UIImage(named: "question_mark")!]

如果将数组类型声明为 by UIImage则无法添加UIImage数组 ([UIImage]),因为类型不同。但是,如果你跳过类型声明,Swift 会弄清楚并允许这个数组存在。

我认为数组的类型会NSObject,然后您可以投射它以访问图像:

class SomeClass {
    var eventImages = [[UIImage()], UIImage(), UIImage(), UIImage(), [UIImage(), UIImage(), UIImage()]]
    func doSomething() {
        if let singleImage = eventImages[1] as? UIImage {
            // Access single image
        }
        if let imageArray = eventImages[4] as? [UIImage] {
            // Access image array
        }
    }
}

您可以按照以下步骤在数组 Swift 2.0 中存储多个图像,如下所示,

---> 首先准备或声明数组对象,如下所示,

var eventImages : NSArray = NSArray()

---> 现在在数组对象中存储您想要的任何图像,例如,

    eventImages = ["1.png","2.png","3.png", NSArray(objects: "4.png", "5.png")]

---> 现在检查它的数组还是数组中的字符串,并获取图像名称并将其分配给图像视图

    if let arr = eventImages.objectAtIndex(2) as? NSString   // means it check whether its string 
    {
         self.imgVIew.image = UIImage(named: arr as String)
    }
    else // if not string then take from array like this 
    {
        self.imgVIew.image = UIImage(named: eventImages.objectAtIndex(3).objectAtIndex(1) as! String)
    }

我希望您得到您的图像并将其分配给图像视图...享受。。它

最新更新