Swift 2.0 table 视图单元格中的 if 语句
Swift 2.0 if statement in table view cell
我正在尝试在 table 视图单元格中显示数组的内容。
我创建了数组(我有一个图像数组和三个字符串数组)。
我成功地显示了数组的内容,没有任何问题。
这是我的 viewController.swift :
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var shopOpen: Bool = false
var openSign: UIImage = UIImage(named: "open")!
var closedSign: UIImage = UIImage(named: "closed")!
var logos = [UIImage(named: "shop1"), UIImage(named: "shop2"), UIImage(named: "shop3")]
var programWorkingDays = ["Luni-Vineri:09:00-20:00", "Luni-Vineri::10:00-21:00", "Luni-Vineri:09:30-19:30"]
var programSambata = ["Sambata:10:00-16:00","Sambata:10:30-13:00" ,"Sambata: 09:00-13:00"]
var programDuminica = ["Duminica:10:00-15:00","Duminica:09:00-14:00","Duminica:10:30-15:00"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
cell.logo.image = logos[indexPath.row]
cell.programWorkingDays.text = programWorkingDays[indexPath.row]
cell.programSambata.text = programSambata[indexPath.row]
cell.programDuminica.text = programDuminica[indexPath.row]
return cell
}
}
我的下一个目标是根据变量 (shopOpen) 的 true/false 值显示一幅或另一幅图像
如果变量为真我想要图片 1,如果它为假我想要图片 2。
图像视图放置在 main.storyboard 中,连接在单元格 class.
中建立
图像将存储在 UIImage 变量中(考虑到这部分我只有两张图像,我认为将它们放在数组中没有任何意义)
我应该在哪里写 if 语句以及如何刷新单元格以显示正确的图像?
首先,参数不是多个数组,而是使用包含布尔值的结构 open
属性
struct Shop {
var workingDays : String
var sambata : String
var duminica : String
var logo : UIImage?
var open = false
}
在ViewController
class中声明一个变量shops
为空Shop
数组
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
let openSign: UIImage = UIImage(named: "open")!
let closedSign: UIImage = UIImage(named: "closed")!
var shops = [Shop]()
在 viewDidLoad
中用适当的 Shop
个实例填充 shops
数组
override func viewDidLoad() {
super.viewDidLoad()
shops.append(Shop(workingDays: "09:00-20:00", sambata: "10:00-16:00", duminica: "10:00-15:00", logo: UIImage(named: "shop1"), open: true))
shops.append(Shop(workingDays: "10:00-21:00", sambata: "10:30-13:00", duminica: "09:00-14:00", logo: UIImage(named: "shop2"), open: false))
shops.append(Shop(workingDays: "09:30-19:30", sambata: "09:00-13:00", duminica: "10:30-15:00", logo: UIImage(named: "shop3"), open: true))
}
在numberOfRowsInSection
return中商店的数量而不是硬编码的整数
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return shops.count
}
在 cellForRowAtIndexPath
中显示来自 Shop
个实例的值。假设有一个图像视图 openImage
打开或关闭图像显示取决于 open
属性.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
let shop = shops[indexPath.row]
cell.logo.image = shop.logo
cell.programWorkingDays.text = "Luni-Vineri: \(shop.workingDays)"
cell.programSambata.text = "Sambata: \(shop.sambata)"
cell.programDuminica.text = "Duminica: \(shop.duminica)"
cell.openImage.image = shop.open ? openSign : closedSign
return cell
}
}
我正在尝试在 table 视图单元格中显示数组的内容。 我创建了数组(我有一个图像数组和三个字符串数组)。
我成功地显示了数组的内容,没有任何问题。 这是我的 viewController.swift :
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var shopOpen: Bool = false
var openSign: UIImage = UIImage(named: "open")!
var closedSign: UIImage = UIImage(named: "closed")!
var logos = [UIImage(named: "shop1"), UIImage(named: "shop2"), UIImage(named: "shop3")]
var programWorkingDays = ["Luni-Vineri:09:00-20:00", "Luni-Vineri::10:00-21:00", "Luni-Vineri:09:30-19:30"]
var programSambata = ["Sambata:10:00-16:00","Sambata:10:30-13:00" ,"Sambata: 09:00-13:00"]
var programDuminica = ["Duminica:10:00-15:00","Duminica:09:00-14:00","Duminica:10:30-15:00"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
cell.logo.image = logos[indexPath.row]
cell.programWorkingDays.text = programWorkingDays[indexPath.row]
cell.programSambata.text = programSambata[indexPath.row]
cell.programDuminica.text = programDuminica[indexPath.row]
return cell
}
}
我的下一个目标是根据变量 (shopOpen) 的 true/false 值显示一幅或另一幅图像
如果变量为真我想要图片 1,如果它为假我想要图片 2。 图像视图放置在 main.storyboard 中,连接在单元格 class.
中建立图像将存储在 UIImage 变量中(考虑到这部分我只有两张图像,我认为将它们放在数组中没有任何意义)
我应该在哪里写 if 语句以及如何刷新单元格以显示正确的图像?
首先,参数不是多个数组,而是使用包含布尔值的结构 open
属性
struct Shop {
var workingDays : String
var sambata : String
var duminica : String
var logo : UIImage?
var open = false
}
在ViewController
class中声明一个变量shops
为空Shop
数组
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
let openSign: UIImage = UIImage(named: "open")!
let closedSign: UIImage = UIImage(named: "closed")!
var shops = [Shop]()
在 viewDidLoad
中用适当的 Shop
个实例填充 shops
数组
override func viewDidLoad() {
super.viewDidLoad()
shops.append(Shop(workingDays: "09:00-20:00", sambata: "10:00-16:00", duminica: "10:00-15:00", logo: UIImage(named: "shop1"), open: true))
shops.append(Shop(workingDays: "10:00-21:00", sambata: "10:30-13:00", duminica: "09:00-14:00", logo: UIImage(named: "shop2"), open: false))
shops.append(Shop(workingDays: "09:30-19:30", sambata: "09:00-13:00", duminica: "10:30-15:00", logo: UIImage(named: "shop3"), open: true))
}
在numberOfRowsInSection
return中商店的数量而不是硬编码的整数
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return shops.count
}
在 cellForRowAtIndexPath
中显示来自 Shop
个实例的值。假设有一个图像视图 openImage
打开或关闭图像显示取决于 open
属性.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
let shop = shops[indexPath.row]
cell.logo.image = shop.logo
cell.programWorkingDays.text = "Luni-Vineri: \(shop.workingDays)"
cell.programSambata.text = "Sambata: \(shop.sambata)"
cell.programDuminica.text = "Duminica: \(shop.duminica)"
cell.openImage.image = shop.open ? openSign : closedSign
return cell
}
}