UIScrollView,魔术可滚动区域

时间:2016-05-01 01:18:32

标签: ios objective-c iphone uiscrollview

一个简单的例子用于演示UIScrollView的奇怪功能。

有一个占用整个屏幕区域的UIScrollView实例。 UIView的一个实例放在UIScrollView实例上并完全重叠。

配置ScrollView,以便在重叠的视图中传输他的所有滑动并且滚动没有发生。所以它应该工作,所有滑动重定向到视图,因为它完全重叠ScrollView。 但是有一个区域位于屏幕的左下角,当你滑动时有时(并不总是)开始滚动。 这个神奇的地方是什么?如何避免这种行为? 仅在设备上重复(在iPhone6,iPhone6 +,iPad Air上试过),在模拟器上无法重复。

我们如何创建和自定义视图: <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" app:cardCornerRadius="4dp" app:cardElevation="4dp" app:cardUseCompatPadding="true" app:cardPreventCornerOverlap="false"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingStart="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingEnd="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:layout_marginTop="@dimen/activity_vertical_margin"> ... </RelativeLayout> </android.support.v7.widget.CardView> </merge>

MyScrollView有一个重写方法: - (void)viewDidLoad { [super viewDidLoad]; MyScrollView *sv = [[MyScrollView alloc] initWithFrame:self.view.bounds]; sv.canCancelContentTouches = NO; sv.delaysContentTouches = NO; sv.multipleTouchEnabled = NO; sv.contentSize = CGSizeMake(sv.bounds.size.width, sv.bounds.size.height + 300); sv.backgroundColor = [UIColor redColor]; [self.view addSubview:sv];
UIView *topView = [[UIView alloc] initWithFrame:sv.bounds]; topView.backgroundColor = [UIColor greenColor]; [sv addSubview:topView]; }

谢谢,抱歉我的英语。

0 个答案:

没有答案