我编程添加两个定制UIPickerViews到另一个视图(的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];
}
有帮助吗?

解决方案

您在视图的控制器添加子视图,而不是视图本身。我建议用MVC设计模式熟悉自己。

的drawRect只应该被用于视图本身的实际的绘制,而不是子视图。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top