当用户开始编辑其中一个UIScrollView
时显示UITextField
时,我有一个UILabel
包含多个UITextField
和UITableView
。
我的问题是当用户点击除UIScrollView
以外的UITableView
时必须隐藏tableview
,并且当用户点击tableview
时必须显示tableview
中的内容{1}} {1}}中的单元格。
请注意,textfield
是tableview
的子视图。
我是这个编程的新手,请帮助我解决这个问题。
答案 0 :(得分:1)
这不是一个好的用户界面。
您应该将UITableView
信封到PopOver
。这里给出了一个循序渐进的过程:How to use UIPopoverController in iPad programming?
编辑:只需使用此方法即可显示popOver
。
- (void) showPickerPopOverAction
{
UIViewController *pickerPopOver = [[UIViewController alloc] init];
pickerPopOver.view = yourTableView;
pickerPopOver.contentSizeForViewInPopover = CGSizeMake(300, 210);
UIPopoverController *pickerPopOverController = [[UIPopoverController alloc]initWithContentViewController:pickerPopOver];
[pickerPopOverController presentPopoverFromRect:yourTextField.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
它会自动解决您的问题。
答案 1 :(得分:1)
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideSubView)];
// prevents the scroll view from swallowing up the touch event of child buttons
tapGesture.cancelsTouchesInView = NO;
[ScrollView addGestureRecognizer:tapGesture];
[tapGesture release];
}
// method to hide SubView when user taps on a scrollview
-(void)hideSubView
{
if (self.SubView.isHidden == NO)
self.SubView.hidden = YES;
}
答案 2 :(得分:0)
Pop over仅适用于iPad而非iPhone或iPod