Элементы, доступные для просмотра, иногда исчезают при выборе (в зависимости от размера экрана) - PullRequest
2 голосов
/ 20 января 2020

Я создаю приложение с вкладками с 3-мя отдельными контроллерами представления (2 обычных представления, 1 представление таблицы), используя Swift 5 и Xcode 11. Внутри моего третьего представления (которое является представлением с таблицей) и внутри моего UITableViewCells, есть 1 кнопка, красного цвета. Я протестировал свою программу на 2 из моих тестирующих устройств, одно с большим экраном, а другое с небольшим экраном iPhone 5 с, и вот результаты, которые я получил:

iPhone с большим экраном (iPhone 6 Plus): все работает нормально, даже если я выберу UITableViewCell, элементы внутри него не исчезнут

iPhone 5s: если я не выберу UITableViewCell, все будет хорошо : enter image description here Но если я выберу UITableViewCell, элементы внутри исчезнут: enter image description here

Это мой контроллер uitableview:

import UIKit

@objcMembers class CustomViewController: UITableViewController {

    var tag = 0
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(_ animated: Bool) {
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }

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

        tag = tag + 1

        let cell = tableView.dequeueReusableCell(withIdentifier: "themeCell", for: indexPath) as! ThemeCell



        /////////
        let cellButton = UIButton(frame: CGRect(x: 0, y: 5, width: 50, height: 30))
        cellButton.translatesAutoresizingMaskIntoConstraints = false
        cell.addSubview(cellButton)
        cell.accessoryView = cellButton
        cellButton.backgroundColor = UIColor.red

        cellButton.leadingAnchor.constraint(equalTo: cell.leadingAnchor, constant: 10).isActive = true
        cellButton.topAnchor.constraint(equalTo: cell.topAnchor, constant: 5).isActive = true
        cellButton.widthAnchor.constraint(equalToConstant: 50).isActive = true
        cellButton.heightAnchor.constraint(equalToConstant: 30).isActive = true

        cell.img.image = UIImage(named: SingletonViewController.themes[indexPath.row])
        cell.accessoryView = cellButton
        cellButton.backgroundColor = UIColor.red
        cellButton.addTarget(self, action: #selector(CustomViewController.backBTN(sender:)), for: .touchUpInside)
        cellButton.tag = tag


        return cell
    }
}

Есть идеи, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 20 января 2020

Удалите этот код строки

cell.accessoryView = cellButton

Либо добавьте кнопку в качестве подпредставления, либо установите ее в качестве дополнительного вида.

2 голосов
/ 20 января 2020

Вы можете просто отключить возможность выбора табличного представления, добавив его ко второй функции tableView:

    tableView.allowsSelection = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...