아래쪽에서 UIPickerView(드럼 같은 거) 빼주세요.

2975 단어 Swift

요지


UIView에 로드됩니다.이렇게 되면 아래에서든 위에서든 모두 꺼낼 수 있다.
그리고 실제로는 귀찮아요.

UIPickerView


여러 개의 선택 항목을 선택할 때 사용하는 iOS 사용자에게 익숙한 드럼 같은 것.그것은 투수의 시야이다.
이미 하위 클래스로 나뉘었습니다.
UItextField와 UIlabel을 두드리기만 하면 드럼리스트가 아래에서 나와서 선택을 할 수 있는 것을 만들고 싶은데 생각보다 귀찮아요.왜 그랬을까, iOS에는'밑에서 드럼을 꺼내는 기능'이 없기 때문에 스스로 만들어야 한다.
실제로 해야 할 내용은'한 UIView에 움직이고 싶은 것을 올려놓고 애니메이션으로 움직인다'는 간단한 내용이지만, 실제로 쓰면 상당히 번거롭다.이러다 다음 재사용 때 울면서 재조사할 수도 있으니 UIView 부반으로 취합하도록 하겠습니다.이 원고는 그 사용 방법과 막힌 곳의 필기다.

PopUpPickerView


설명


취소 버튼 누르면 재설정','완료 버튼 누르면 정계자 사용'두 점을 제외하고는 모두 UIView에만 부품을 설치하는 클래스다.특별히 편리한 것도 없고, 너무 신경 쓸 것도 없으니, 마음대로 수정하세요.

사용법


인스턴스 addSubview를 적절한 UIView에 배치하면 를 시작할 수 있습니다.하지만 UIPickerView를 사용하기 때문에 델리멘을 설치해야 하는 경우가 많다.
ViewController에 이렇게 많이 쓰면 움직일 수 있을 거예요.아마
class ViewController: UIViewController, PopUpPickerViewDelegate {
    var pickerView: PopUpPickerView!
    let array = ["test1", "test2", "test3", "test4", "test5"]

    override func viewDidLoad() {
        super.viewDidLoad()

        pickerView = PopUpPickerView()
        pickerView.delegate = self
        if let window = UIApplication.sharedApplication().keyWindow {
            window.addSubview(pickerView)
        } else {
            self.view.addSubview(pickerView)
        }

        let button = UIButton.buttonWithType(UIButtonType.ContactAdd) as UIButton
        button.frame = CGRectMake(50, 100, 30, 30);
        button.addTarget(self, action: "showPicker", forControlEvents: UIControlEvents.TouchDown)
        UIApplication.sharedApplication().keyWindow!.addSubview(pickerViewTester)`
    }
    func showPicker() {
        pickerView.showPicker()
    }
    // for delegate
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 3
    }
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return array.count
    }
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return array[row]
    }
    func pickerView(pickerView: UIPickerView, didSelect numbers: [Int]) {
        println(numbers)
    }
}

메모지


이동이 UIPickerViewDataSource를 상속하지 않음


델리멘만 설정했는데 왜
  • UIView.animateWithDuration
  • func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
  • 이동합니다.내부에서 데이터 원본에 대해 같은 조작을 시도하고 있습니까?

    애니메이션은 괄호 밖으로 쓸 수 있습니다. (때로는)


    swift에는 마지막 파라미터가 크론이면 괄호 밖으로 쓸 수 있다는 규정이 있다.이걸로 하면 애니메이션 쓰기가 편할 거예요.
    UIView.animateWithDuration(0.2) {
        self.frame = CGRectMake(0, screenSize.height, screenSize.width, 260.0)
    }
    

    Storyboard 를 무리하게 사용하지 마십시오.


    코드를 쓰는 것이 더 편할 때도 있다.

    좋은 웹페이지 즐겨찾기