【问题标题】:iOS AutoLayout Storyboard Landscape Orientation UIButton doesn't accept touchiOS AutoLayout Storyboard Landscape Orientation UIButton 不接受触摸
【发布时间】:2013-11-22 00:22:29
【问题描述】:

我有一个标签栏应用程序,第一个视图控制器在右上角有一个设置 UIButton。当您旋转到横向模式时,它不接受触摸事件。旋转到纵向就可以了。切换视图控制器,然后切换回来。在两个方向上一切正常。

有趣的是,在横向模式下也位于右侧的 UITableView 似乎只接受其特定部分的触摸事件。如果我将设置 UIButton 移到该部分之外,即使不切换视图控制器,它也会按预期工作。 (我知道你在想什么,上面有东西。据我所知,我已经改变了所有的视图和子视图以具有不同的背景,并且没有什么不合适或不符合预期。

我正在包括所有相关组件的设置...

TabBarViewController 属性

FirstViewController 属性

包含设置 UIButton 的子视图属性

包含 Settings UIButton 是其子级的视图指标

设置 UIButton 属性

设置 UIButton 指标

设置 UIButton 连接

FirstViewController 中元素的 Z 顺序

我打开了一个新的 TabBar 项目并对其进行了测试,那里一切正常。右侧似乎有什么东西,但似乎什么都没有。

【问题讨论】:

    标签: ios iphone objective-c uibutton autolayout


    【解决方案1】:

    问题是您的视图或视图控制器的“未设置框架”。您需要检查一下,当您更改方向时,您的视图/视图控制器的框架没有发生变化。 SubViews 将根据它们的位置显示,但我很确定它们的 parentview 的框架不符合横向模式,这就是你的表也没有响应的原因。当方向改变时,尝试将其绑定设置为视图的框架。

    【讨论】:

      【解决方案2】:

      将以下行添加到控制器的 viewDidLoad 方法中:

      [self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
      

      另外,要查找重叠视图,请使用模拟器调试菜单中的颜色混合图层选项。

      【讨论】:

        猜你喜欢
        • 2014-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多