1

プログラムで2つのカスタムUIPickerViewを別のビュー(MainView)に追加しています。これらは正常に機能しますが、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];
}
4

1 に答える 1

2

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

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

于 2009-05-28T13:02:00.320 に答える