首先,如果标题不是描述性的,我深表歉意。请自由感觉更改它更适合我的问题。
所以基本上,我有一个名为eventImages的UIImages
数组。
在 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)
}
我希望您得到您的图像并将其分配给图像视图...享受。。它