文档章节

pageControl的使用

夕阳_jhe
 夕阳_jhe
发布于 2015/09/23 14:44
字数 375
阅读 122
收藏 0

昨天使用swift写一个cell时,使用pagecontrol,在设其frame想让其居中,使用两个方法

  1. 设原点x坐标为WXDevice.width/2 - pageWidth/2 

  2. pagecontrol 原点点x=0,width = WXDevice.width

但结果两种方法都有问题(5S中却显示居中),pagecontrol 位置总有偏移,最后的解决方法是,在layoutSubviews方法里设置,其frme

    override func layoutSubviews() {

        super.layoutSubviews()

        self.pageControl.frame = CGRectMake(0, vHeight - 10, deviceWidth, 20)

    }

问题就解决了,大概的原因,是这样的,当开始设置frame时,上面两个方法设的位置的确是居中,只是设备默认一开始,以320为设备宽度,所以当实际设备的宽度不是320时,进行重新布局时,就会出现这个问题。这也是为什么5s显示居中的原因。

        self.likeScrollView = UIScrollView()

        self.likeScrollView.frame =  CGRectMake(CGFloat(0), 0, deviceWidth, CGFloat( vHeight))

        self.likeScrollView.showsHorizontalScrollIndicator = false //去掉默认水平滑动条

        self.likeScrollView.pagingEnabled = true  // 翻页属性

        self.likeScrollView.contentSize = CGSizeMake(deviceWidth * CGFloat(pageCount), CGFloat(self.likeScrollView.frame.size.height))

        self.likeScrollView.delegate = self

        self.contentView.addSubview(self.likeScrollView)


      //for  添加每页的view

      for (var i = 0 ; i < pageCount; i++) {

            var v: UIView = UIView(frame: CGRectMake(CGFloat(i) * deviceWidth, self.titleLB.frame.size.height,             deviceWidth, self.likeScrollView.frame.size.height))

            self.likeScrollView.addSubview(v)

    }


        self.pageControl = UIPageControl()

        self.pageControl.numberOfPages = pageCount;

        self.pageControl.pageIndicatorTintColor = UIColor.grayColor()// 设置非选中页的圆点颜色

        self.pageControl.pageIndicatorTintColor = UIColor(red: 204/255.0, green: 204/255.0, blue: 204/255.0, alpha: 0.5)   // #cccccc

        self.pageControl.currentPageIndicatorTintColor = UIColor.redColor()// 设置选中页的圆点颜色

        self.pageControl.currentPageIndicatorTintColor = UIColor(red: 225/255.0, green: 22/255.0, blue: 68/255.0, alpha: 1)   // #e11644

        self.pageControl.enabled = false        // 禁止默认的点击功能

        self.pageControl.backgroundColor = UIColor.clearColor()

        self.pageControl.currentPage = 0

        self.contentView.addSubview(self.pageControl)

   

    override func layoutSubviews() {

        super.layoutSubviews()

        self.pageControl.frame = CGRectMake(0, vHeight - 10, deviceWidth, 20)

    }

    //滑动切换

    func scrollViewDidScroll(scrollView: UIScrollView) {

        var pageWidth:CGFloat  = scrollView.frame.size.width;

        var page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

        self.pageControl.currentPage = Int( page)

    }


© 著作权归作者所有

上一篇: layoutSubviews总结
下一篇: 添加device
夕阳_jhe
粉丝 2
博文 54
码字总数 15591
作品 0
深圳
私信 提问
哪位大神会OC的自定义pageControl 分享一下呗

@implementation MyPageControl - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.activeImage = [UIImage imageNamed:@"compose_keyb......

如若初见
2016/03/21
362
2
UIScrollView、UIPageControl的练习

代码功能,实现图的自动播放~ .h #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIScrollViewDelegate> @property(nonatomic,strong)UIImageView *imageView; @pro......

0_0Loong
2015/06/30
7
0
重写UIPageControl实现自定义按钮(转)

有时候UIPageControl需要用到白色的背景, 那么会导致上面的点按钮看不见或不清楚, 我们可以通过继承该类重写函数来更换点按钮的图片现实. 实现思路如下. 这么多人看了不回帖, 万恶的伸手党啊...

长平狐
2012/08/13
149
0
jQuery Mobile 问题,请教!

@红薯 你好,想跟你请教个问题: 语言:C#,我自定义了一个控件比如是PageControl,在前台引用: 在控件里面我生成了超链接:HyperLink link = new HyperLink();link.NavigateUrl="xxxx.asp...

张裕
2012/12/19
308
2
UI_07 UIScrollView、UIPageControl

⼀、UIScrollView的常⽤属性 UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容。UIScrollView是所有滚动视图的基类。 1、UIScrollView核⼼功...

黑伞将军
2015/08/24
136
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部