xamarin学习笔记B05(ios的UIScrollView)
来源:互联网 发布:面对网络舆论你怎么看 编辑:程序博客网 时间:2024/05/18 21:07
(每次学习一点xamarin就做个学习笔记和视频来加深记忆巩固知识)
如有不正确的地方,请帮我指正。
UIScrollView简介
当界面内容很多,一次性显示不了这么多时,可以使用滚动视图控件。
UIScrollView基本使用
A.首先看ContentSize这个属性。
拖一个UIScrollView控件到storyboard,再通过代码添加一个红色的UIView。它们的宽高分别设置如下图:
public override void ViewDidLoad() { base.ViewDidLoad(); //------------contentSize属性 UIView redView = new UIView(); redView.BackgroundColor = UIColor.Red; redView.Frame = new CGRect(0, 0, 80, 80); this.scrollView1.AddSubview(redView); this.scrollView1.ContentSize = new CGSize(340, 240); this.scrollView1.ClipsToBounds = false;//设置不截剪,方便看效果 }
在代码中设置了ContentSize为宽340,高240,那么可滚动范围是这样的,如下图:
可以看出,可以向左滚动的距离是scrollView1.ContentSize的宽340减去scrollView1本身的宽度(即Frame)300,结果为40。向上同理。
如果scrollView1.ContentSize的宽和高 <= scrollView1本身的宽度,那么将不可滚动。
B.再看看AlwaysBounceVertical属性。
有时候没有可滚动的东西,但需要下拉显示一个等待的图标,表示正在刷新,这时就可用这个属性。
注释掉前面的代码,写入如下代码:
//------------alwaysBounceVertical属性 //创建一个等待控件 UIActivityIndicatorView indicator1 = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); indicator1.Center = new CGPoint(100, -20); indicator1.StartAnimating(); this.scrollView1.AddSubview(indicator1); this.scrollView1.AlwaysBounceVertical = true;//只是有个弹簧效果,并没有滚动
下拉可看到等待图标,如下图:
C.再看看ContentOffset属性。
注释掉前面的代码,写入如下代码:
//------------contentOffset UIImage image = UIImage.FromBundle("Tree"); UIImageView imageView1 = new UIImageView(image); imageView1.Alpha = 0.5F; this.scrollView1.AddSubview(imageView1); this.scrollView1.ContentSize = image.Size; this.scrollView1.ContentOffset = new CGPoint(40, 40); this.scrollView1.ClipsToBounds = false;
如果没设置ContentOffset = new CGPoint(40, 40),那么默认是下图这样:
如果设置了,则情况如下图:
D.再看看ContentInsert属性。
注释掉前面的代码,写入如下代码:
//------------contentInset内边距 UIImage image = UIImage.FromBundle("Tree"); UIImageView imageView1 = new UIImageView(image); imageView1.Alpha = 0.5F; this.scrollView1.AddSubview(imageView1); this.scrollView1.ContentInset = new UIEdgeInsets(10, 10, 10, 10); this.scrollView1.ClipsToBounds = false; this.scrollView1.ContentSize = image.Size;
设置上左下右这四边的内边距为10,运行结果如下图:
E.ScrollView的一些事件
//------------监听UIScrollView事件 UIImage image = UIImage.FromBundle("Tree"); UIImageView imageView1 = new UIImageView(image); this.scrollView1.AddSubview(imageView1); this.scrollView1.ClipsToBounds = true;//记得设置栽剪为是,才可以缩放 this.scrollView1.ContentSize = image.Size; this.scrollView1.MaximumZoomScale = 2.0F;//最大缩放比例为2倍 this.scrollView1.MinimumZoomScale = 0.3F;//最小缩放比例为0.3 //返回要缩放的控件 this.scrollView1.ViewForZoomingInScrollView += (UIScrollView scrollView) => { return imageView1; }; //缩放时会不断调用此方法 this.scrollView1.DidZoom += (sender, e) => { //Console.WriteLine("scrollView1.DidZoom()"); }; //滚动时会不断调用此方法 this.scrollView1.Scrolled += (sender, e) => { //Console.WriteLine("Scrolled()"); }; //拖动开始时被调用 this.scrollView1.DraggingStarted += (sender, e) => { Console.WriteLine("scrollView1.DraggingStarted()"); }; //拖动完毕之前被调用 this.scrollView1.WillEndDragging += (sender, e) => { Console.WriteLine("scrollView1.WillEndDragging()"); }; //拖动完毕后被调用 this.scrollView1.DraggingEnded += (sender, e) => { Console.WriteLine("scrollView1.DraggingEnded()"); }; //减速完毕后被调用 this.scrollView1.DecelerationEnded += (sender, e) => { Console.WriteLine("scrollView1.DecelerationEnded()"); };
代码和视频在我上传的CSDN资源中http://download.csdn.net/download/junshangshui/10151239
- xamarin学习笔记B05(ios的UIScrollView)
- xamarin学习笔记B04(ios的xib)
- xamarin学习笔记B07(ios的UITableView)
- iOS 学习笔记 uiscrollview
- iOS开发学习笔记-UIScrollView的用法
- iOS开发学习笔记-UIScrollView的用法
- xamarin学习笔记B03(ios的UIView的了解)
- xamarin学习笔记A01下(ios环境的安装)
- xamarin学习笔记B06(ios的Autolayout布局)
- iOS 学习笔记《一》UIScrollView
- iOS学习笔记02-UIScrollView
- iOS学习笔记之-UIScrollView
- 【Xamarin学习笔记】Xamarin.iOS中隐藏和显示Tabbar
- xamarin学习笔记B01(ios环境准备工作)
- iOS学习笔记-019.UIScrollView的基本属性和用法
- iOS开发-UIScrollView的学习
- 黑马程序员--IOS学习笔记-UIScrollView
- iOS 学习笔记 UIScrollView 宽度问题
- vue.js使用
- OpenCV3中StereoBM函数的用法
- 集成科大讯飞语音听写功能
- kubernetes1.8.4安装指南 -- 2. ssh免密登录
- spring ContentNegotiationManagerFactoryBean 内容协商
- xamarin学习笔记B05(ios的UIScrollView)
- 在WebStorm里配置watcher实现编辑less文件时自动生成.css文件
- 程序4
- placeholder
- 去除android系统截屏接口
- iOS 中tableView 多选时怎么更改cell前的选中框样式
- 建筑师创建了一个可以抵御地震的可折叠房屋
- 寻梦环游记身后的皮克斯,是卢卡斯和乔布斯的梦幻成果
- XMind 8 Update6破解补丁破解过程