質問

私はプログラム的に別のビュー(MAINVIEW)に2つのカスタムUIPickerViewsを追加しています。彼らはうまく動作しますが、タッチイベントがMAINVIEWのどの部分で発生するまで、彼らは表示されません。私はUIPickerViewとUIViewのためのクラス参照をチェックしましたが、私は何かを明らかに不足していない限り、ビューを「リフレッシュ」するために管理何かを見つけることができますか?

ここでMainView.mの私のdrawRectメソッドです。私は、のviewDidLoadで同じことをやってみましたが、ありません成功しました。カスタム回転/変換などはそれとは何かを持ってもらえますか?

- (void)drawRect:(CGRect)rect { 
    CGRect pickerFrame = CGRectMake(50, -32, 30, 180);
    m_picker1 = [[UIPickerView alloc] initWithFrame:pickerFrame];
    m_picker1.delegate = self;  
    m_picker1.tag = k_ptag1;
    m_picker1.showsSelectionIndicator =YES;  
    m_picker1.backgroundColor = [UIColor clearColor]; 
    CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);  
    rotate = CGAffineTransformScale(rotate, 0.075, 0.85);  
    [m_picker1 setTransform:rotate];  
    [self addSubview:m_picker1]; 

    pickerFrame = CGRectMake(50, 67, 30, 180);
    m_picker2 = [[UIPickerView alloc] initWithFrame:pickerFrame];
    m_picker2.delegate = self;  
    m_picker2.tag = k_ptag2;
    m_picker2.showsSelectionIndicator =YES;  
    m_picker2.backgroundColor = [UIColor clearColor]; 
    rotate = CGAffineTransformMakeRotation(3.14/2);  
    rotate = CGAffineTransformScale(rotate, 0.075, 0.85);  
    [m_picker2 setTransform:rotate];  
    [self addSubview:m_picker2];
}
役に立ちましたか?

解決

あなたは、ビューのコントローラではなく、ビュー自体にサブビューを追加します。私はMVCデザインパターンに慣れることをお勧めします。

のdrawRectのみビュー自体ではなく、サブビューの実際の描画のために使用することになっている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top