Ios 为什么我的阵列不使用我发送给它的信息?斯威夫特4
嗨,我对这个swift很陌生,但我知道一点,我正在尝试在我的数组中插入一个图像和两个文本,如下所示:Ios 为什么我的阵列不使用我发送给它的信息?斯威夫特4,ios,arrays,swift,uitableview,Ios,Arrays,Swift,Uitableview,嗨,我对这个swift很陌生,但我知道一点,我正在尝试在我的数组中插入一个图像和两个文本,如下所示: @IBAction func doneEditing(_ sender: Any) { insertNewActy() print(myCellRows, "Saved") } func insertNewActy(){ addTitles = addTitle.text! addLocations = addLocation.text! newI
@IBAction func doneEditing(_ sender: Any) {
insertNewActy()
print(myCellRows, "Saved")
}
func insertNewActy(){
addTitles = addTitle.text!
addLocations = addLocation.text!
newImages = newImage.image!
let element = MyCellRows(image: newImages,
title: addTitles,
location: addLocations)
myCellRows.insert(element, at: 0)
}
我有3个变量,一个是UIImage
,另一个是String
但是当我按下doneEditing
按钮时,什么也没有发生
也许我把这个
addTitles = addTitle.text!
addLocations = addLocation.text!
newImages = newImage.image!
在错误的地方
我的数组是这样的
import UIKit
var myCellRows: [MyCellRows] = []
class ActyViewController: UIViewController {
@IBOutlet weak var myTableView: UITableView!
func createMyCellArray() -> [MyCellRows] {
var myCells: [MyCellRows] = []
let dog = MyCellRows(image: #imageLiteral(resourceName: "Dog"),
title: "Dog",
location: "America")
let cat = MyCellRows(image: #imageLiteral(resourceName: "Cat"),
title: "Cat",
location: "Sweden")
let rabbit = MyCellRows(image: #imageLiteral(resourceName: "Rabbit"),
title: "Rabbit",
location: "Germany")
let tiger = MyCellRows(image: #imageLiteral(resourceName: "Tiger"),
title: "Tiger",
location: "Africa")
myCells.append(dog)
myCells.append(cat)
myCells.append(rabbit)
myCells.append(tiger)
return myCells
}
我想要完成什么
我正在尝试将手机用户库中的2个自定义文本和1个图像添加到我的tableview中。
tableView代码正确且工作正常
谢谢您的时间。:)
注意:iam在mytableView中使用myTableView.reload()
,View中的类出现
您需要将一个MyCellRows实例传递给MyCellRows.insert(:at:)
调用。如果您试图同时插入图像和文本,只需实例化一个新的MyCellRows(图像:?,标题:addTitle.text!,位置:?)
如果你想插入一行标题,但没有图像或位置,你将不得不做一些重新编译。您可以将MyCellRows
上的image
和location
变量设置为可选(UIImage?
和String?
),然后传递image:nil
和位置:nil
,如:
myCellRows.insert(myCellRows(image:nil,title:addTitle.text!,location:nil))
由于数组“myCellRows”包含类型为“myCellRows”的元素,因此出现错误,但在func insertNewTitle()
中,尝试插入类型为String的元素。
要解决此错误,必须确保在func insertNewTitle()
中创建类型为“MyCellRows”的实例,然后将元素附加到“MyCellRows”数组中
您是否必须使用“MyCellRows”或将其类型更改为“type”String@NiallKehoe我想,但我也想插入图像,我可以这样做吗,还是必须先创建一个字符串数组,然后再创建一个包含图像的数组?我正在尝试同时插入图像、标题和位置,抱歉,如果我的速度很慢,但我是新来的,呵呵,我要去哪里插入代码?在insertNewTitle
函数中?我照你说的做了,我写了这个func
insertNewTitle(){
myCellRows.insert(myCellRows(图像:
新图像,
标题:
添加标题,
位置:
添加位置),
位于:0)
newImages
newImage.image!
添加位置
添加位置.text!
添加标题
添加标题.text}
请看,我是用这3个变量创建的,因为我需要将它们转换为String类型和UIImage类型。现在我没有收到任何错误,但当按下DoneEditing按钮时什么也没有发生。我也尝试了这一点。我没有收到错误,但当我点击done…tableView.reloadData()时,什么都没有显示更新数据数组后。@PhoneyDeveloper嘿,我在哪里执行此函数?在viewDidLoad()
?@PhoneyDeveloper中,我在viewdidappease()
中编写了它,但仍然没有发生任何事情检查我的问题我已对其进行了编辑,但insertNewActy()或insertNewTitle()必须响应用户操作。无论何时,都必须再次重新加载data()。更新数据模型后,必须重新加载data()。然后,将为每个可见行再次调用cellForRowAtIndexPath。
func insertNewTitle(){
let element = MyCellRows(image: #imageLiteral(resourceName: "image"),
title: addTitle.text!,
location: "Location")
myCellRows.insert(element, at: 0)
}