我有一个带有2个按钮的tableview,一个按钮用于today
,第二个按钮用于yesterday
,如下所示以及下面的数据,其中tDays的整数数组表示工作日的值,如{{1} }
Sunday = 1,....Saturday = 7
现在当我按var tAnimals:[String] = ["Cat", "Dog", "Rabbit"]
var tDays:[[Int]] = [[3,4],[4,5],[5,6]]
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var myTableView: UITableView!
@IBOutlet weak var todayBtn: UIButton!
@IBOutlet weak var yesterdayBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int
{
return tAnimals.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
myCell.titleLabel.text = "Animals"
return myCell
}
}
时,我希望在表视图中看到todayBtn
,因为今天是Dog and Rabbit
,我按Thursday = 5
,我希望看到{{1}因为它是yestredayBtn
。
我发现了这个扩展程序,用于查找工作日的价值,但不知道如何将其应用为按钮标记
Cat and Dog
有没有办法可以将工作日的值分配为按钮标记,以便它们每天自动更新并显示正确的数据。
答案 0 :(得分:2)
这样的事可能需要一些折射,我希望你能得到基本的想法:
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
var tAnimals:[String] = ["Cat", "Dog", "Rabbit"]
var tDays:[[Int]] = [[3,4],[4,5],[5,6]]
var arrdata:[String] = []
var today:Int!
var day:Int!
@IBOutlet weak var myTableView: UITableView!
@IBOutlet weak var todayBtn: UIButton!
@IBOutlet weak var yesterdayBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
today = Date().dayNumberOfWeek()
}
//connect this IBAction with todayBtn & yesterdayBtn
@IBAction func actChangeData(_ sender: UIButton) {
arrdata.removeAll()
if sender == todayBtn {
day = today
} else {
day = today - 1
}
for i in 0...tAnimals.count-1 {
if tDays[i].contains(day) {
arrdata.append(tAnimals[i])
}
}
myTableView.reloadData()
}
func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
return arrdata.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
myCell.titleLabel.text = arrdata[indexPath.row]
return myCell
}
}
extension Date {
func dayNumberOfWeek() -> Int? {
return Calendar.current.dateComponents([.weekday], from: self).weekday
}
}