Я увидел много вопросов о горизонтальных uipickerviews и решил реализовать это. Я могу легко повернуть мое окно выбора, используя listPicker.transform = CGAffineTransform(rotationAngle: -90 * (.pi/180) )
, но после этого я не могу настроить кадр, чтобы он вернулся в исходную форму. ниже - исходная рамка перед ее вращением, я бы хотел сдвинуть вправо
and this is the frame after rotating it and trying to set the frame back to its original form but it's not working
введите описание изображения здесь
и вот мой исходный код, если кто-нибудь знает, как решить эту
listPicker.translatesAutoresizingMaskIntoConstraints = false
listPicker.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 20).isActive = true
listPicker.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -20).isActive = true
listPicker.topAnchor.constraint(equalTo: self.topAnchor, constant: 5).isActive = true
listPicker.heightAnchor.constraint(equalToConstant: 50).isActive = true
let originalFrame = listPicker.frame
listPicker.transform = CGAffineTransform(rotationAngle: -90 * (.pi/180) )
listPicker.frame = originalFrame
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
return 40
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let view = UIView(frame: CGRect(x: 0, y: 0, width: 80, height: 40))
let listLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 80, height: 40))
listLabel.textAlignment = .center
listLabel.font = UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.medium)
view.addSubview(listLabel)
listLabel.text = list[row]
view.transform = CGAffineTransform(rotationAngle: 90 * (.pi/180))
return view
}