有人使用过 tinkoff iOS SDK 吗?整个问题是他们的文档是用Objective-C语言编写的,我用swift编写应用程序,他们通过Tinkoff实现了支付,帮助
主页
/
user-372041
Moskwinow's questions
我有 3 个部分,根据其类型添加产品
var productsList = BasketModel.shared.records
var sections: [String] = ["Блюда","Топинги","Напитки"]
var sectionedProducts: [[Products]] = []
override func viewDidLoad() {
super.viewDidLoad()
choiceBtn.layer.cornerRadius = 20
choiceBtn.layer.masksToBounds = true
basketTableView.delegate = self
basketTableView.dataSource = self
orderButton.layer.cornerRadius = 20
orderButton.layer.masksToBounds = true
if !BasketModel.shared.records.isEmpty {
fullBasketview.isHidden = false
sections.forEach { section in
let itemsInSection = productsList.filter({$0.type == section})
sectionedProducts.append(itemsInSection)
for item in itemsInSection {
totalPrice += item.price
totalPriceLabel.text = "\(totalPrice) Руб."
}
}
} else {
sectionedProducts.removeAll()
fullBasketview.isHidden = true
}
}
@IBAction func unwindBasketVC(for unwindSegue: UIStoryboardSegue) {}
}
extension BasketVC: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sections[section]
}
func numberOfSections(in tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if !productsList.isEmpty {
return sectionedProducts[section].count
} else {
return 0
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "BasketCell", for: indexPath) as! BasketCell
// let basket = BasketModel.shared.records
cell.basketImg.image = sectionedProducts[indexPath.section][indexPath.row].img
cell.basketName.text = sectionedProducts[indexPath.section][indexPath.row].name
cell.basketPrice.text = "\(String(describing: sectionedProducts[indexPath.section][indexPath.row].price)) Руб."
return cell
}
现在我需要,如果在没有产品的这个部分中,它不是显示而是隐藏的!目前它看起来像这样
正如你在图片中看到的,只有里面有面包的浇头!我如何隐藏其他部分,因为其中没有产品
我有一个单一的音调,当用户选择产品时写入数据,之后我将此数据传递到购物车并显示它
''' 导入 UIKit
最后一类 BasketModel {
static let shared = BasketModel()
var records: [Products] = []
private init() {}
func addProducts(_ product: Products) {
self.records.append(product)
}
func clearProducts() {
self.records = []
}
}
结构产品{
let img: UIImage
let name: String
let price: Int
let type: String
}'''
我有三种产品(菜肴、浇头、饮料)我想用这样的数据创建 3 个部分菜肴、浇头、饮料这里是我的表格代码
''' 导入 UIKit
类 BasketVC: UIViewController {
@IBOutlet weak var fullBasketview: UIView!
@IBOutlet weak var bottomBasketView: UIView!
@IBOutlet weak var choiceBtn: UIButton!
@IBOutlet weak var basketTableView: UITableView!
@IBOutlet weak var totalPriceLabel: UILabel!
@IBOutlet weak var orderButton: UIButton!
var presenter = false
var totalPrice = 0
var sections: [String] = ["Блюда","Топпинги","Наппитки"]
var product = [BasketModel.shared.records]
override func viewDidLoad() {
super.viewDidLoad()
choiceBtn.layer.cornerRadius = 20
choiceBtn.layer.masksToBounds = true
basketTableView.delegate = self
basketTableView.dataSource = self
orderButton.layer.cornerRadius = 20
orderButton.layer.masksToBounds = true
if !BasketModel.shared.records.isEmpty {
fullBasketview.isHidden = false
for item in BasketModel.shared.records {
totalPrice += item.price
totalPriceLabel.text = "\(totalPrice) Руб."
}
} else {
fullBasketview.isHidden = true
}
}
@IBAction func unwindBasketVC(for unwindSegue: UIStoryboardSegue) {}
}
扩展 BasketVC: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sections[section]
}
func numberOfSections(in tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return product[section].count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "BasketCell", for: indexPath) as! BasketCell
cell.basketImg.image = product[indexPath.section][indexPath.row].img
cell.basketName.text = product[indexPath.section][indexPath.row].name
cell.basketPrice.text = "\(product[indexPath.section][indexPath.row].price) Руб."
return cell
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
BasketModel.shared.records.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .automatic)
totalPrice = 0
for item in BasketModel.shared.records {
totalPrice += item.price
totalPriceLabel.text = "\(totalPrice) Руб."
}
}
if BasketModel.shared.records.isEmpty {
fullBasketview.isHidden = true
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
}
'''
在我去购物车后,错误出现在这里 ''' func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return product[section].count -> Fatal error: Index out of range
}
'''
请帮帮我