【发布时间】:2015-04-08 11:03:08
【问题描述】:
我制作了一个屏幕分成两半的 ipad 应用程序。每一面都包含一个容器,每个容器都包含 UIView。
在左侧的 uiView 中,我有一个 uiScrollView,里面有多个元素(自定义 uiview),就像一个网格,但带有滚动,每个元素都支持点击手势。 当我点击每个元素时,它们工作正常并且表现得像他们应该做的那样。假设他们做了一个 NSLog(@"tapped!")。
当我调整包含滚动视图的整个视图或容器的大小时,问题就来了:
navigationVC.view.frame = CGRectMake(0,0, 338,768);
水龙头停止工作!但是,如果我将大小调整回原来的框架,点击会再次开始工作。
navigationVC.view.frame = CGRectMake(0,0, originalWidth ,768);
我认为问题是当我调整滚动视图大小时元素会重新排列,但实际上并非如此。
当我向左或向右滑动整个应用程序时,框架正在调整大小。
编辑:
行为图:http://i.imgur.com/4vKpHLQ.png?1
EDIT2:还没弄明白,但我现在看到元素绑定在调整框架大小时正在发生变化。
【问题讨论】:
-
请在更改框架时检查滚动视图的
contentSize,并设置滚动视图的属性clipsToBounds = YES。现在旋转设备,看看你是否还能看到 UIViews -
嘿,clipsToBounds = YES 已设置。左右交换时的滚动内容大小为: (width=663, height=7193) 旋转设备并保持它的宽度 = 663,水龙头工作正常。
-
不,不是。当框架改变大小而不是位置时,问题仍然存在。
-
好的,所以我做了更多测试,现在我只将帧宽度从 660 更改为 600 而不是 330 .. 发生的情况是水龙头可以工作,但仅在半个元素以上. (元素有 150 像素)所以我假设只有 90 像素在接受点击。这太奇怪了。。也许每次我更改框架时,我都必须删除并再次添加手势?
-
可以添加 UI 截图吗?
标签: objective-c resize frame tap