2009-05-28 4 views
1

Я программно добавляю два пользовательских UIPickerViews к другому представлению (MainView). Они работают отлично, но они не видны до тех пор, пока не произойдет событие касания в любой части MainView. Я проверил ссылки на классы для UIPickerView и UIView, но не нашел ничего, что может «обновить» представление, если я не упустил что-то очевидное?UIPickerView не появляется до тех пор, пока не произойдет прикосновение

Вот мой метод drawRect в MainView.m. Я пробовал делать то же самое в 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]; 
} 

ответ

2

Вы добавляете subviews в контроллер вида, а не в представление. Я бы предложил ознакомиться с шаблоном проектирования MVC.

drawRect предназначен только для фактического рисования самого вида, а не для подсмотров.

+0

Спасибо, я переместил все необходимые материалы в UIViewController, и сборщики теперь появляются правильно. – moigno

Смежные вопросы