iPhone开发之UIScrollView滚动组件的使用(二) 拖线实现按钮控制大图移动利用contentOffset属性
2015-08-27 22:15
1111 查看
1、@property(nonatomic) CGPoint contentOffset
属性含义:
(1)当UIScrollView内部的内容滚动时,内容相对于UIScrollView左上角的偏移。
(2)另一种理解方式:内容滚动到了什么位置。
注意:offset是偏移的意思,相对于某个点坐标的x、y的偏移
2、UIScrollView内的内容不仅可以用手进行滚动,也可以通过代码进行控制滚动。
3、实例:
通过点击按钮,实现大图自动滚动(修改contentOffset)
步骤如下:
(1)拖进图片资源到Image.xcassets
(2)点击Main.storyboard ,拖进一个UIScrollView组件到编辑界面,并设置大小。再往UIScrollView组件内拖进一个画框UIImageView,并进行图片设置,并把UIIMageView的大小设置和图片的大小相同。
(3)拖线分别为UIIMageView组件和UIScrollView组件添加属性。
(4)在控制器.m文件的viewDidLoad方法中添加代码,把画框UIImageView的大小frame中的size或画框中图片的大小即image.size告知(赋值)给UIScrollView中的contentSize属性。
(5)关闭自动布局。
(6)运行成功能进行移动时,再往编辑界面添加按钮组件,并拖线实现监听方法。
(7)在控制器按钮的监听方法内进行实现UIScrollView组件的contentOffset属性的修改,为了增加效果还可以添加block动画
或者直接用动画的方式设置contentOffset属性的值。
代码如下:
-(IBAction)scroll{
CGPoint point=self.scrollView.contentOffset;
point.x+=150;
point.y+=150;
//直接修改contentOffset,没有动画效果
//self.scrollView.contentOffset=point;
// 通过block动画实现滚动
//[UIView animateWithDuration:1.0 animations:^{
//self.scrollView.contentOffset=point;
//}];
// 直接使用动画的方式来设置contentOffset属性的值
[self.scrollView setContentOffset:point animated:YES ];
}
注意:
(一)无论是改变空间的位置还是大小都不能直接修改其属性值,都分为三个步骤即——>
-获取组件原先的信息属性值
-对信息属性值进行修改
-把修改后的属性值直接赋给组价相应的属性
(二)如果不想在拖动完后显示滚动组件的空白内容,可以在控制器的viewDidLoad方法中添加如下代码
// 隐藏滚动指示器
self.scrollView.showHorizontalScrollIndicator=NO;
self.scrollView.showVerticalScrollIndicator=NO;
(scrollView是拖线为UIScrollView组件添加的属性名)
代码示例如下:
步骤一如下图:
步骤二:拖线实现监听方法
步骤三:在监听方法内实现控制,编辑控制器的.m文件如下:
运行结果如下:
属性含义:
(1)当UIScrollView内部的内容滚动时,内容相对于UIScrollView左上角的偏移。
(2)另一种理解方式:内容滚动到了什么位置。
注意:offset是偏移的意思,相对于某个点坐标的x、y的偏移
2、UIScrollView内的内容不仅可以用手进行滚动,也可以通过代码进行控制滚动。
3、实例:
通过点击按钮,实现大图自动滚动(修改contentOffset)
步骤如下:
(1)拖进图片资源到Image.xcassets
(2)点击Main.storyboard ,拖进一个UIScrollView组件到编辑界面,并设置大小。再往UIScrollView组件内拖进一个画框UIImageView,并进行图片设置,并把UIIMageView的大小设置和图片的大小相同。
(3)拖线分别为UIIMageView组件和UIScrollView组件添加属性。
(4)在控制器.m文件的viewDidLoad方法中添加代码,把画框UIImageView的大小frame中的size或画框中图片的大小即image.size告知(赋值)给UIScrollView中的contentSize属性。
(5)关闭自动布局。
(6)运行成功能进行移动时,再往编辑界面添加按钮组件,并拖线实现监听方法。
(7)在控制器按钮的监听方法内进行实现UIScrollView组件的contentOffset属性的修改,为了增加效果还可以添加block动画
或者直接用动画的方式设置contentOffset属性的值。
代码如下:
-(IBAction)scroll{
CGPoint point=self.scrollView.contentOffset;
point.x+=150;
point.y+=150;
//直接修改contentOffset,没有动画效果
//self.scrollView.contentOffset=point;
// 通过block动画实现滚动
//[UIView animateWithDuration:1.0 animations:^{
//self.scrollView.contentOffset=point;
//}];
// 直接使用动画的方式来设置contentOffset属性的值
[self.scrollView setContentOffset:point animated:YES ];
}
注意:
(一)无论是改变空间的位置还是大小都不能直接修改其属性值,都分为三个步骤即——>
-获取组件原先的信息属性值
-对信息属性值进行修改
-把修改后的属性值直接赋给组价相应的属性
(二)如果不想在拖动完后显示滚动组件的空白内容,可以在控制器的viewDidLoad方法中添加如下代码
// 隐藏滚动指示器
self.scrollView.showHorizontalScrollIndicator=NO;
self.scrollView.showVerticalScrollIndicator=NO;
(scrollView是拖线为UIScrollView组件添加的属性名)
代码示例如下:
步骤一如下图:
步骤二:拖线实现监听方法
步骤三:在监听方法内实现控制,编辑控制器的.m文件如下:
// // ViewController.m // datu // // Created by apple on 15/8/26. // Copyright (c) 2015年 LiuXun. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @property (weak, nonatomic) IBOutlet UIImageView *imageview; - (IBAction)scroll; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 方式一:设置UIScrollView内容的大小为画框的大小 self.scrollView.contentSize=self.imageview.frame.size; // 方式二:设置UIScrollView内容的大小为画框内图片的大小 self.scrollView.contentSize=self.imageview.image.size; self.scrollView.showsHorizontalScrollIndicator=NO; self.scrollView.showsHorizontalScrollIndicator=NO; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)scroll { // 通过代码让图片滚动 CGPoint point=self.scrollView.contentOffset; point.x+=150; point.y+=150; // 直接修改contentOffset没有动画效果 // self.scrollView.contentOffset=point; // 通过block动画进行实现 [UIView animateWithDuration:1.0 animations:^{ self.scrollView.contentOffset=point; }]; // [self.scrollView setContentOffset:point animated:YES]; } @end
运行结果如下:
相关文章推荐
- 玩转UITableView
- iOS:转载:UIControl的使用
- iOS中的分段控件(UISegmentedControl)和滑块控件(UISlider)
- UILabel 详解
- 【APUE】Chapter11 Threads
- UI_10 表视图的编辑、UITableViewController
- 在QT Creator中简单的使用UI文件来设计界面并在源码中使用ui文件
- UI基础----常见控件的使用之TextView
- Qt学习(1):ui设计给窗口做背景及控件背景添加方法
- iPhone开发之UIScrollView滚动组件的使用——纯代码实现图形的横向与纵向滚动
- iOS中的导航条UINavigationController(UISegmentedControl)的基本使用(界面中传值的3中方法,单例,属性,代理)
- [uwsgi] no request plugin is loaded, you will not be able to manage requests.
- iOS中的分页控件(UIPageControl)
- iOS中的UIScorllView(滑动控件,时机控制)的基本使用
- CircuitBreakingException[[FIELDDATA] Data too large, data for [proccessDate] would be larger than li
- STL中stack/queue/map以及Boost unordered_map 的使用方法
- UVa 1584 Circular Sequence
- iOS开发之有趣的UI —— 基础控件与经典案例
- 之前UI的小练习
- UI中的界面之间的值传递 <二>