2014-01-07 29 views
1

我在我的视图控制器中有pickerview。我通过添加到子视图然后更改子视图的框架来显示它。当我的pickerview显示时,我有一个按钮后面。当我点击那些区域后,pickerview仍然按钮动作被调用。如何设置pickerview正确?Uipickerview项目工作背后

+0

你使用ActionSheet? – Mani

+0

你能解释一下你的问题吗? “设置适当”的意思是什么?由于pickerview中的错误,pickerview后面的按钮的动作可能会触发。首先,您可以在此之后报告,您可以在呈现pickerview时轻松隐藏按钮上的禁用用户交互。 –

+0

我希望这是在ios7中工作。所以它的苹果功能。你可以根据你的逻辑做到这一点。我的意思是当显示pickerview时可以禁用视图的用户交互,并且如果pickerview被隐藏,那么视图的交互是启用的。 –

回答

1

像下面的PickerView子类将帮助你解决这个问题。

// 
// WPCustomPickerView.h 
// test 
// 
// Created by VASANTH K on 08/01/14. 
// 
// 

#import <UIKit/UIKit.h> 

@interface WPCustomPickerView : UIDatePicker 

@end 

实现文件

// 
// WPCustomPickerView.m 
// test 
// 
// Created by VASANTH K on 08/01/14. 
// 
// 

#import "WPCustomPickerView.h" 

@implementation WPCustomPickerView 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 


-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    id hitview=[super hitTest:point withEvent:event]; 
    if(!hitview) 
    { 
    if(point.y<=self.frame.size.height&&point.y>=0) 
    return self; 
     } 
return hitview; 
} 


@end 

在这里,我重写hitTest,以便为用户交互UIPickerView响应。这就是苹果如何让主选择器视图对用户触摸透明,当用户直接触摸主视图而不是选择器内容时返回零。