【问题标题】:Hide subview(uitableview) when ever user clicks on uiscrollview当用户点击 uiscrollview 时隐藏子视图(uitableview)
【发布时间】:2013-02-21 07:54:32
【问题描述】:

当用户开始编辑其中一个UITextField 显示UITableView 时,我的UIScrollView 包含许多UITextFieldUILabel

我的问题是,当用户点击UIScrollView 而不是UITableView 时,必须隐藏tableview,而当用户点击tableview 时,必须在textfieldtableview 单元格中显示内容。

记住,tableviewscrollview 的子视图。

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

【问题讨论】:

    标签: iphone uiscrollview xcode4.2


    【解决方案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】:

    这不是一个好的用户界面。

    您应该将您的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];
    }
    

    它会自动解决您的问题。

    【讨论】:

    • 你能告诉我怎么做吗?
    • 你检查过那个链接吗?
    • clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
    • 和“_OBJC_CLASS_$_PopViewController”,引用自:
    • 我没有得到你。我尽力解释。只需阅读链接的内容并尝试理解它的内容。如果这还不够,请进行一些研究或谷歌搜索。
    【解决方案3】:

    Pop over 仅适用于 iPad 而不是 iPhone 或 iPod

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 2011-03-30
      • 2017-09-05
      • 1970-01-01
      • 2012-10-08
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多