//
// MyPageCorol.h
// lejiahui
//
// Created by iOS开发 on 16/4/10.
// Copyright © 2016年 zhongmingwuye. All rights reserved.
// #import <UIKit/UIKit.h> @interface MyPageCorol : UIView /** 当前页数 */
@property(nonatomic,assign) NSInteger correntPage; /** itmenSize */
@property(nonatomic,assign) CGSize itmeSize; + (MyPageCorol *)myPageControlWithSuperView:(UIView *)superView; - (void)setImage:(UIImage *)image andSelectImage:(UIImage *)slectImage totalNum:(NSInteger)totalNum; - (void)setColor:(UIColor *)color andSelectColor:(UIColor*)selectColor totalNum:(NSInteger)totalNum; @end //
// MyPageCorol.m
// lejiahui
//
// Created by iOS开发 on 16/4/10.
// Copyright © 2016年 zhongmingwuye. All rights reserved.
// #import "MyPageCorol.h" @interface MyPageCorol()
{
NSMutableArray * _pageItems;
UIColor * _selectedColor;
UIColor * _color; UIImage * _image;
UIImage * _selectedImage; BOOL _isImage; NSInteger _width;
NSInteger _height;
} @end @implementation MyPageCorol + (MyPageCorol *)myPageControlWithSuperView:(UIView *)superView{
MyPageCorol * pl = [[MyPageCorol alloc]init];
pl.frame = CGRectMake(, superView.frame.size.height-, superView.frame.size.width, );
pl.backgroundColor = [UIColor clearColor];
[superView addSubview:pl];
return pl;
} - (instancetype)init{
if (self=[super init]) {
self.itmeSize = CGSizeMake(, );
}
return self;
} - (void)setItmeSize:(CGSize)itmeSize{
_itmeSize = itmeSize;
_width = itmeSize.width;
_height = itmeSize.height;
}
//设置图片形式
- (void)setImage:(UIImage *)image andSelectImage:(UIImage *)slectImage totalNum:(NSInteger)totalNum{
_isImage = YES;
_image = image;
_selectedImage = slectImage; _pageItems = [[NSMutableArray alloc]init];
NSInteger num = totalNum; NSInteger height = ;
NSInteger width =;
if (self.itmeSize.height!=&&self.itmeSize.width!=) {
height = self.itmeSize.height;
width = self.itmeSize.width;
}
NSInteger sepreate = ;
NSInteger totalWidth = num*width+(num-)*sepreate;
NSInteger orangex = (self.frame.size.width-totalWidth)/;
NSInteger orangey = (self.frame.size.height - height)/;
for (int i = ;i< num; i++) {
UIImageView * pageView = [[UIImageView alloc]init];
pageView.frame = CGRectMake(orangex+i*(width+sepreate), orangey, width, height);
[_pageItems addObject:pageView];
[self addSubview:pageView];
}
self.correntPage = ;
} //设置颜色形式
- (void)setColor:(UIColor *)color andSelectColor:(UIColor*)selectColor totalNum:(NSInteger)totalNum{
_pageItems = [[NSMutableArray alloc]init];
_color = color;
_selectedColor = selectColor; NSInteger num = totalNum;
NSInteger height = ;
NSInteger width =;
if (self.itmeSize.height!=&&self.itmeSize.width!=) {
height = self.itmeSize.height;
width = self.itmeSize.width;
}
NSInteger sepreate = ;
NSInteger totalWidth = num*width+(num-)*sepreate;
NSInteger orangex = (self.frame.size.width-totalWidth)/;
NSInteger orangey = (self.frame.size.height - height)/;
for (int i = ;i< num; i++) {
UIView * pageView = [[UIView alloc]init];
pageView.frame = CGRectMake(orangex+i*(width+sepreate), orangey, width, height);
[_pageItems addObject:pageView];
[self addSubview:pageView];
}
self.correntPage = ;
} - (void)setCorrentPage:(NSInteger)correntPage{
_correntPage = correntPage;
for (int i = ; i<_pageItems.count; i++) {
if (_isImage) {
UIImageView * imageView= _pageItems[i];
imageView.image = _image;
if (correntPage==i) {
imageView.image = _selectedImage;
}
}else{
UIView * view = _pageItems[i];
view.backgroundColor = _color;
if (correntPage==i) {
view.backgroundColor = _selectedColor;
}
}
}
} @end

自定义滚动控件(Pagecontrol)的更多相关文章

  1. [android] 手机卫士自定义滚动控件

    TextView控件设置单行显示 android:singleLine=”true” 设置TextView开始的位置显示省略号,android:ellipsize=”start” 设置滚动属性,and ...

  2. Android实现图片轮显效果——自定义ViewPager控件

    一.问题概述 使用ViewPager控件实现可横向翻页.水平切换图片等效果,但ViewPager需要手动滑动才能切换页面,图片轮显效果的效果本质上就是在ViewPager控件的基础上让它能自动的进行切 ...

  3. 安卓自定义组合控件--toolbar

    最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android stud ...

  4. Android自定义控件之自定义组合控件

    前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发 ...

  5. asp.net webform 自定义分页控件

    做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...

  6. arcgis api for js共享干货系列之二自定义Navigation控件样式风格

    arcgis api for js默认的Navigation控件样式风格如下图: 这样的风格不能说不好,各有各的爱好,审美观,这里也不是重点,这里的重点是如何自定义一套自己喜欢的样式风格呢:自己自定义 ...

  7. C# DataGridView自定义分页控件

    好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...

  8. C# 自定义FileUpload控件

    摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和T ...

  9. C#Winform VScrollBar+Pannel自定义列表控件(原)

    该控件的主要实现思路是用的objective-c中的自定义控件思路,主视图中放子视图 效果图 (窗体调用代码) public partial class Form1 : RibbonForm { Li ...

随机推荐

  1. mysql-主从复制(二)

    1)主服务器上开启binlog服务器 log-bin=mysql-bin 2)用户授权(并不是privileges授权!!!!),正确有从服务器授权如下 grant replication slave ...

  2. Annotation(jdk5.0注解)复习(转自http://3w_cnblogs_com/pepcod/)

    package annotation.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retent ...

  3. dede 首页调用单页->栏目内容

    {dede:sql sql='Select content from dede_arctype where id=47'} [field:content/] {/dede:sql}

  4. 【原创】牛顿法和拟牛顿法 -- BFGS, L-BFGS, OWL-QN

    数据.特征和数值优化算法是机器学习的核心,而牛顿法及其改良(拟牛顿法)是机器最常用的一类数字优化算法,今天就从牛顿法开始,介绍几个拟牛顿法算法.本博文只介绍算法的思想,具体的数学推导过程不做介绍. 1 ...

  5. Arduino 电平转换 升压 OUTPUT与9V/12V元件通信

    原因 网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程.但是如果想驱动高于5V电压的芯片,就找不到教程了.因此今天我来介绍一种方式,能让Ardu ...

  6. 使用poi解析Excel

    解析XLS package xls; import java.io.FileInputStream; import java.io.IOException; import java.io.InputS ...

  7. [转] C# 绘制报表,使用Graphics.DrawString 方法

    原文 Graphics.DrawString 方法 在指定位置并且用指定的 Brush 和Font 对象绘制指定的文本字符串. public void DrawString( string s, Fo ...

  8. DDoS攻防战(二):CC攻击工具实现与防御理论

    我们将要实现一个进行应用层DDoS攻击的工具,综合考虑,CC攻击方式是最佳选择,并用bash shell脚本来快速实现并验证这一工具,并在最后,讨论如何防御来自应用层的DDoS攻击. 第一步:获取大量 ...

  9. As3 常用日期工具

    package com.lj.utils { import mx.controls.DateField; import mx.controls.dataGridClasses.DataGridColu ...

  10. [转]Linux之type命令

    转自:http://codingstandards.iteye.com/blog/831504 用途说明 type命令用来显示指定命令的类型.一个命令的类型可以是如下之一 alias 别名 keywo ...