use*_*431 3 objective-c uiscrollview ios
我是Objective-c的新手.我创建了UIScrollView对象并使用以下代码添加到我的视图中:
height = self.view.frame.size.height;
width = self.view.frame.size.width;
scrollbar = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
scrollbar.delegate = self;
scrollbar.backgroundColor = [UIColor whiteColor];
scrollbar.maximumZoomScale = 1.0;
scrollbar.minimumZoomScale = 1.0;
scrollbar.clipsToBounds = YES;
scrollbar.showsHorizontalScrollIndicator = YES;
scrollbar.pagingEnabled = YES;
[scrollbar setContentSize:CGSizeMake(width*4, height*4)];
[self.view addSubview:scrollbar];
for (int i = 1; i <= 4; i++) {
first = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
first.view.frame = CGRectMake((i-1)*width, 0, width, height*4);
[scrollbar addSubview:first.view];
switch (i) {
ase 1:
first.view.backgroundColor = [UIColor blueColor];
break;
case 2:
first.view.backgroundColor = [UIColor redColor];
break;
case 3:
first.view.backgroundColor = [UIColor greenColor];
break;
case 4:
first.view.backgroundColor = [UIColor grayColor];
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我在我的ScrollView中添加了4个不同颜色的视图,我现在想要滚动我的ScrollView检测dx&dy(dx:Axis.x上的行驶距离和dy:Axis.y上的行驶距离)并检查这两个变量和什么时候 :
Notic:我希望当任何人触摸ScrollView并在Axis上移动触摸(x或y)或触摸Both Axis(x和y)时检查:
if(dx> dy)禁用水平滚动并在垂直方向移动!!! 否则在水平方向移动并禁用垂直滚动!
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGRect visibleRect = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.contentOffset.x + scrollView.bounds.size.width, scrollView.contentOffset.y + scrollView.bounds.size.height);
NSLog(@"%f,%f",visibleRect.origin.x,visibleRect.origin.y);
/*NSLog(@"x : %f",scrollView.contentOffset.x);
NSLog(@"y : %f",scrollView.contentOffset.y);*/
if (fabsf(scrollView.contentOffset.x) > fabsf(scrollView.contentOffset.y)) {
NSLog(@"Vertical Side");
}
else {
NSLog(@"Horizontal Side");
}
}
Run Code Online (Sandbox Code Playgroud)
请指导我们.我不能禁用一方并移动另一侧!谢谢
小智 6
如果我理解你正确,你想要禁用用户拖动的方向滚动.如果是这样,UIScrollView已经提供了这样做的选项:
scrollView.directionalLockEnabled = YES;
Run Code Online (Sandbox Code Playgroud)
当此选项设置为true时,UIScrollView将自行处理正确的方向锁定.
有关更多信息,请查看文档:链接
| 归档时间: |
|
| 查看次数: |
2064 次 |
| 最近记录: |