Проблемы в представлении вложенной иерархии с использованием раскадровки в Swift

Я новичок в Swift, поэтому в настоящее время я организую большую часть своего приложения, используя раскадровку.

Я хочу построить прокручиваемый вид, который содержит textField и pickerView.

и каждый из них является стековым представлением, а затем является дочерним представлением представления A. и представлением A является дочерним представлением scrollView.

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

Конструкция приложения

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

клавиатура не всплывающая, когда я касаюсь textField, прокрутка pickerView не работает. Я думаю, что это из-за вложенного представления, но понятия не имею, как решить.

Пожалуйста, помогите! А также рад дать несколько советов учиться Swift. Спасибо заранее.

* редактировать 1) прикрепить мой код *

import UIKit

class ViewController: 
UIViewController, UIPickerViewDataSource, UIPickerViewDelegate
{
    @IBOutlet var outerView: UIView!
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var statePicker: UIPickerView!

    @IBOutlet weak var innerView: UIView!
    @IBOutlet weak var nameInputer: UITextField!

    let states = ["Alaska", "Arkansas", "Alabama", "California", "Maine", "New York"]

    override func viewDidLoad() {
        super.viewDidLoad()

        var scrollViewHeight:CGFloat = 0.0
        for view in self.view.subviews as [UIView] {
            scrollViewHeight += view.frame.size.height;
        }

        scrollView.contentSize = CGSize(width: view.frame.width, height: scrollViewHeight)
        scrollView.contentInset = UIEdgeInsetsMake(20, 0, 20, 0)

        statePicker.dataSource = self
        statePicker.delegate = self

        statePicker.isExclusiveTouch = true
        scrollView.canCancelContentTouches = false

        innerView.sendSubview(toBack: outerView)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return states.count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return states[row]
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        statePicker.isHidden = true
    }
}

* РЕДАКТИРОВАТЬ 2: прикрепить мою доску рассказов * моя стойкая доска

0 ответов

Другие вопросы по тегам