进入横向模式后,UIButton停止响应 - iPhone

时间:2010-05-20 14:25:51

标签: iphone objective-c interface-builder

过去几天我一直在尝试不同的事情,但我的想法已经用完,所以我正在寻求帮助。情况是我在用户点击按钮后显示我的应用内购买商店视图。按下按钮,显示视图。商店很好。在这个视图中,我有一些带有产品描述的标签,然后在它们下面我有价格和购买按钮触发应用内购买。问题是当我将手机旋转到风景时,购买按钮不再响应,很奇怪。在肖像中工作得很好。

我触摸按钮时的横向行为是什么。它似乎没有按下并被选中或任何东西,只是没有回应我的触摸。但是当我旋转回肖像甚至颠倒肖像时,它工作正常。

这是我在IB中的视图的粗略结构,所有旋转和布局都在IB中设置。我在IB中设置了自动调整功能,以便在横向上看起来一切正常,并且“购买”按钮会水平扩展一点。我在代码中进行的唯一布局操作是在加载后,我设置了滚动视图的内容大小。

File Owner with view set to the scrollView      
/ scrollView  
----/ view  
--------/ label  
--------/ label  
--------/ label  
--------/ label  
--------/ label  
--------/ label  
--------/ label  
--------/ label  
--------/ uibutton (Buy)  

在方向更改后,我打印出scrollView和按钮的userInteractionEnabled属性,它们在所有方向都是TRUE。

想法?或者可能还有其他一些显示购买按钮的方式不会失效?我已经开始使用工具栏并在那里放置购买按钮的分支,但我似乎无法让滚动条保持原位。

3 个答案:

答案 0 :(得分:3)

听起来你解决了这个问题,但为了防止其他人来看,我遇到了类似的问题并找到了解决方案。

我是以编程方式添加了scrollview。然后我会调用setContentSize来确保scrollview和我想要显示的视图一样高。我展示的视图是使用UIViewAutoresizingFlexibleWidth和UIViewAutoresizingFlexibleHeight设置的。

当我在测试时旋转到横向模式时,看起来我的子视图就在那里但是当我向下滚动时我无法点击任何内容。我认为问题在于,因为我的子视图设置为具有灵活的高度,所以当scrollview缩小时,它正在垂直缩小。也许我仍然按预期看到它,因为我没有剪辑或什么?

无论哪种方式,一旦我的子视图具有灵活的宽度,一切都会再次起作用。您应该能够以编程方式或在界面构建器中关闭灵活高度(框中向上和向下的箭头)。

答案 1 :(得分:1)

由于我无法使UIButton正常工作,我最终只是取消按钮并创建一个包含我当前所有内容的新父视图,然后在其下方添加一个工具栏并在其上放置一个按钮。这个问题似乎真的不像我这么多时间保证这就是为什么我只是采取了不同的方式。

File Owner with view set to the parent view  
/ view
----/ scrollView  
--------/ view  
------------/ label  
------------/ label  
------------/ label  
------------/ label  
------------/ label  
------------/ label  
------------/ label  
------------/ label  
----/ toolBar  
--------/ barbutton (Buy)  

答案 2 :(得分:0)

嗯,也许按钮位于UIView内,不会像设备那样旋转,然后你会一直查看你的按钮,但是在传播触摸的视图容器之外。

您可以在IB中检查其容器中视图的锚点或进行编码。