Установите изображение кнопки в соответствии с выбором и состоянием по умолчанию - PullRequest
0 голосов
/ 27 сентября 2018

Это мой код.

class NamePictureCell: UITableViewCell {

    @IBOutlet weak var nameLabel: UILabel?
    @IBOutlet weak var buttonType: UIButton?

    func setOptions(Options1:NH_OptionsModel)

    {
        self.nameLabel?.text = Options1.values

    }

//    var item: NH_QuestionListModel? {
//       didSet {
//             self.nameLabel?.text = item?.buttontype
//          }
//    }

    static var nib:UINib {
        return UINib(nibName: identifier, bundle: nil)
    }

    static var identifier: String {

        return String(describing: self)
    }

    override func awakeFromNib() {
        super.awakeFromNib()

         }

    override func prepareForReuse() {
        super.prepareForReuse()

         }    
}

В viewController: -

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



        let model = questionViewModel.titleForHeaderInSection(atsection: indexPath.section)

        // print(model.answerType?.hashValue)

        print(model.answerType)

        print(model.answerType?.rawValue)



        switch model.answerType {

        case .NHAnswerRadioButton?:



            if let cell = self.tableview.dequeueReusableCell(withIdentifier: NamePictureCell.identifier) as? NamePictureCell {


             //   cell.item = model
             cell.setOptions(Options1:questionViewModel.datafordisplay(atindex: indexPath))

                //   print(cell.item)

                return cell

            }

        case .NHAnswerCheckboxButton?:

            if let cell = self.tableview.dequeueReusableCell(withIdentifier: AboutCell.identifier, for: indexPath) as? AboutCell {

                cell.setOptions(Options1:questionViewModel.datafordisplay(atindex: indexPath))                            //  cell.item = item

                return cell

            }

        case .NHAnswerSmileyButton?:

            if let cell = self.tableview.dequeueReusableCell(withIdentifier: FriendCell.identifier) as? FriendCell{

                cell.textLabel?.text = ""

                return cell



            }

        case .NHAnswerStarRatingButton?:

            if let cell = self.tableview.dequeueReusableCell(withIdentifier: EmailCell.identifier) as? EmailCell {

                cell.textLabel?.text = ""

                return cell

            }



        case .NHAnswerTextButton?:

            if let cell = self.tableview.dequeueReusableCell(withIdentifier:AttributeCell.identifier, for: indexPath) as? AttributeCell{

                cell.textLabel?.text = ""

                //  cell.item = item

                return cell

            }

        default:

            return UITableViewCell()

        }

        return UITableViewCell()

    }

И модель: -

class NH_QuestionListModel: NSObject {

    var dataListArray33:[NH_OptionsModel] = []


    var id:Int!
    var question:String!
    var buttontype:String!
    var options:[String]?
    var v:String?
    var answerType:NHAnswerType?


      var optionsModelArray:[NH_OptionsModel] = []
    init(dictionary :JSONDictionary) {

        guard   let question = dictionary["question"] as? String,
            let typebutton = dictionary["button_type"] as? String,

                let id = dictionary["id"] as? Int
             else {
                return

        }
       // (myString as NSString).integerValue


        self.answerType = NHAnswerType(rawValue: Int(typebutton)!)

        if let options = dictionary["options"] as? [String]{
            print(options)

           print(options)


            for values in options{

                print(values)

                let optionmodel = NH_OptionsModel(values: values)
                self.optionsModelArray.append(optionmodel)

            }


        }


        self.buttontype = typebutton
        self.question = question
        self.id = id

                   }

}

В ячейке таблицы просмотраNamePictureCell, у меня есть одна метка и одна радиокнопка.

В xib этой ячейки.Для кнопки я установил следующие данные:

По умолчанию - одно изображение дано, при выбранном - другое изображение дано

Так что мой вопрос соответствует моему типу кнопки api-

- 1, то в нормальном состоянии должно отображаться изображение по умолчанию, и при выборе кнопки должно отображаться выбранное изображение.
Как это сделать?

1 Ответ

0 голосов
/ 27 сентября 2018

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

buttonType.setImage(UIImage(named: "defaultImage")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Normal)
    buttonType.setImage(UIImage(named: "selectedImage")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Highlighted)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...