【问题标题】:ios7: UIButton on UINavigationBar is not selectableios7:UINavigationBar 上的 UIButton 不可选择
【发布时间】:2014-09-25 22:25:09
【问题描述】:

我有一个非常独特的问题。我有一个自定义导航控制器 (https://github.com/cwRichardKim/RKSwipeBetweenViewControllers),我正在尝试进一步自定义它。我想要得到的效果是这样的:

我拥有的是这个(忽略搜索栏):

我遇到的问题是,当您单击导航栏中的任何选项卡(例如“公共”)时,单击不会注册,而是单击下面的任何内容。例如,如果我单击“Munchies”,它将单击选项卡下方的搜索栏。此外,即使它下面没有可点击的东西(我已经用空白的 UIViewController 尝试过),标签(例如:“Munchies”)仍然不可点击。

我有一个理论来解释为什么会这样。如果我将标签提高几个像素,标签的顶部就会变成可点击的。所以,我认为 navigationBar 有一个框架,您可以在其中与它的对象进行交互,但是如果您与该框架之外的任何东西进行交互,它就会与较低的层进行交互。我试过扩大导航栏的高度,但它不起作用(我已经查过了,它违反了规则)。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: ios objective-c ios7 uibutton


    【解决方案1】:

    我在这里阅读了您的代码:

    https://github.com/cwRichardKim/RKSwipeBetweenViewControllers/blob/master/RKSwipeBetweenViewControllers.m

    我不确定这是否会奏效。但是这个问题也发生在我的表格单元格中。或许你可以试着输入这个。

    [navigationView setUserInteractionEnabled:NO];
    

    我很确定你的方法是正确的,因为当我读到 Apple documentations 它说:

    Custom views can contain buttons. Use the buttonWithType: method in UIButton 
    class to add buttons to your custom view in the style of the navigation bar. 
    Custom title views are centered on the navigation bar and may be resized 
    to fit.
    

    【讨论】:

    • 为什么我要把 userinteraction 设置为 no?我试图得到它,这样当我按下按钮时,它会与按钮交互,而不是与按钮后面的东西交互
    • 试过了,不行。重申一下,我想点击“MyEvents”或“Munchies”并按下该按钮而不是它下面的东西
    • 这是我的另一个假设。可能你在设置按钮的属性(例如选择器)之前,将按钮添加到 UIView 的子视图中。
    • 另一种hackish方法是您可以尝试设置touchGesture,如果它与touchLocation匹配,然后创建效果。我真的很想解决你的问题,因为你的导航栏看起来真的很酷,而且我有一天可能想尝试一下!请在问题解决后回答您自己的问题,或者希望我的解决方案能够奏效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多