【发布时间】:2017-04-29 14:00:03
【问题描述】:
我为我的 detailViews 制作了一个最喜欢的按钮(我有一个 master-detail 应用程序),它通常为所有单元格/DetailsViews 保存按钮状态...我希望如果我按下 index 的 3 个单元格,它将保存按钮状态仅用于那里,如果我转到索引 4,它将单独保存到该行,并且不会将相同的状态保存到所有单元格。
收藏按钮:
//create a new button
let Favoritebutton: UIButton = UIButton(type: UIButtonType.custom)
//set image for button
Favoritebutton.setImage(UIImage(named: "EmptyHeart.png"), for: .normal)
Favoritebutton.setImage(UIImage(named: "FilledHeart.png"), for: .selected)
//add function for button
Favoritebutton.addTarget(self, action: #selector(self.button), for: .touchUpInside)
//set frame
Favoritebutton.frame = CGRect(x:0,y: 0,width: 35,height: 35)
Favoritebutton.isSelected = UserDefaults.standard.bool(forKey: "isSaved")
let barButton = UIBarButtonItem(customView: Favoritebutton)
//assign button to navigationbar
self.navigationItem.rightBarButtonItem = barButton
func button(sender: UIButton) {
audioPlayer.play()
let newValue = !sender.isSelected
sender.isSelected = newValue
UserDefaults.standard.set(newValue, forKey: "isSaved")
let tabItem = self.tabBarController?.tabBar.items![3]
sel_val = tabItem?.badgeValue
if(sel_val == nil){
sel_val = "0"
}
let sel_num = Int(sel_val!)
let fav: NSMutableArray = []
fav.add(barImage)
fav.add(barName)
fav.add(streetName)
if sender.isSelected {
tabItem!.badgeValue = String(format: "%d", sel_num! + 1)
favorite.add(fav)
} else {
tabItem!.badgeValue = String(format: "%d", sel_num! - 1)
favorite.remove(fav)
}
}
我怎样才能像我想要的那样单独为每个 indexPath 设置按钮保存状态?
这将帮助我完成我最喜欢的功能,因此非常感谢您的帮助!
感谢您的帮助!
【问题讨论】:
标签: ios swift button favorites