дизайн интерфейса приложения с использованием tablview в Swift - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу, чтобы интерфейс моего приложения был похож, как показано на рисунке ниже.

enter image description here

Используя tableview, я могу получить Оплата, Доставка, Сборка команды Опции, как показано на рисунке, но для Создание профиля, Управление меню .. Как мне это сделать, используя tableview ? Если нет таблицы для этих опций, то какой другой элемент управления я могу попробовать.

1 Ответ

0 голосов
/ 30 апреля 2018

этот тип пользовательского интерфейса вы ищете, и вы можете легко получить, создав различные классы ячеек

Выход интерфейса:

enter image description here

необходимый код

Шаг 1 - Создание другой Xib ячейки таблицы

class viewWithArrow: UITableViewCell {
    @IBOutlet weak var headerLabel: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

class viewWithShadow: UITableViewCell {

    @IBOutlet weak var shadowView: UIView!{
        didSet{
            shadowView.addShadowToView(color: .black)
        }
    }
    @IBOutlet weak var headerLabel: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

Добавление эффекта тени:

extension UIView {
    func addShadowToView(color:UIColor)
    {
        self.layer.shadowColor = color.cgColor
        self.layer.shadowOpacity = 0.2
        self.layer.masksToBounds = false
        self.clipsToBounds = false
        self.layer.shadowOffset = CGSize(width: 0, height: 0)
        self.layer.shadowRadius = 5
    }
}

Просмотр контроллера

class ViewController: UIViewController
{
    var dataArray : [String] = ["11","22","33","44","55","66"]
    @IBOutlet weak var homeVcTableView: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        homeVcTableView.register(UINib(nibName: "viewWithShadow", bundle: nil), forCellReuseIdentifier: "viewWithShadow")
        homeVcTableView.register(UINib(nibName: "viewWithArrow", bundle: nil), forCellReuseIdentifier: "viewWithArrow")
    }

    override func viewWillAppear(_ animated: Bool) {
        self.homeVcTableView.delegate = self
        self.homeVcTableView.dataSource = self
    }
}

extension ViewController : UITableViewDataSource, UITableViewDelegate
{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return dataArray.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        switch indexPath.row {
        case 0,1:
            let cell = self.homeVcTableView.dequeueReusableCell(withIdentifier: "viewWithShadow", for: indexPath) as! viewWithShadow
            cell.headerLabel.text = dataArray[indexPath.row]
            return cell
        default:
            let cell = self.homeVcTableView.dequeueReusableCell(withIdentifier: "viewWithArrow", for: indexPath) as! viewWithArrow
            cell.headerLabel.text = dataArray[indexPath.row]
            return cell
        }
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return self.homeVcTableView.frame.size.height*0.1
    }


}

Рабочий код ссылки - https://drive.google.com/open?id=18mSlWAU_e4XElox4H-oTpqg8clD_HKwu

...