Как создать собственный выход раскадровки представления из пользовательской ячейки tableView? - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь создать настраиваемое представление в настраиваемой ячейке tableviewcell. Но я не увидел никаких результатов.

//-- This is the custom tableview cell where I created custom view outlet and mentioned custom view class when creating outlet from tableviewcell.

class NetworkAccessByLocationTableViewCell: UITableViewCell {
    
    @IBOutlet weak var chartView: MyCustomView!
    
    override func awakeFromNib() {
        super.awakeFromNib()
    }
 }

//--This is my custom View where I have code customized for view.


class MyCustomView: UIView {

    override init(frame: CGRect) {
           super.init(frame: frame)
           setup()
       }

       required init?(coder aDecoder: NSCoder) {
           super.init(coder: aDecoder)
           setup()
       }
    
        func setup() {
        //I have something here
        }

        func createBezierPath() -> UIBezierPath {
         //I have some code here
        }

}

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Попробуйте этот код

class MyCustomView: UIView {

override init(frame: CGRect) {
       super.init(frame: frame)
       setupView()
       
   }

   required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
       setupView()
    
   }

   private func setupView() {
        let bundle = Bundle(for: MyCustomView.self)
        if let view = UINib(nibName: <Name of MyCustomView's Xib file>, bundle: bundle).instantiate(withOwner: self, options: nil).first as? UIView {
            view.frame = bounds
            view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            view.translatesAutoresizingMaskIntoConstraints = true
            addSubview(view)
        }
        setup()
    }

    func setup() {
    //I have something here
    }

    func createBezierPath() -> UIBezierPath {
     //I have some code here
    }

}

0 голосов
/ 03 августа 2020

Я не понимаю, в чем именно заключается ваша проблема, но для использования настраиваемого UIView, доступного в Interface Builder, вам необходимо создать представление IBDesignable. Кроме того, поскольку ваше настраиваемое представление не содержит xib, почему бы вам просто не создать экземпляр своего настраиваемого представления в своей ячейке и программно добавить к нему привязку

let chartView = MyCustomView()
self.addSubview(chartView)

Затем дайте привязку, которую вы хотите предоставить в настраиваемой ячейке для вашего диаграммы.

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