用户点击uiscrollview时隐藏子视图(uitableview)

时间:2013-02-21 07:54:33

标签: iphone uiscrollview xcode4.2

当用户开始编辑其中一个UIScrollView时显示UITextField时,我有一个UILabel包含多个UITextFieldUITableView

我的问题是当用户点击除UIScrollView以外的UITableView时必须隐藏tableview,并且当用户点击tableview时必须显示tableview中的内容{1}} {1}}中的单元格。

请注意,textfieldtableview的子视图。

我是这个编程的新手,请帮助我解决这个问题。

3 个答案:

答案 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