iOS实现九宫格自动生成视图-创新互联
在移动开发里有相当多的时候需要使控件呈现九宫格格式的分布,最常见的如
成都创新互联公司长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阿瓦提企业提供专业的网站建设、网站制作,阿瓦提网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。图案解锁界面:
相册管理界面:
单独创建一个这样界面的步骤相当繁琐,要创建父视图用于控制每一个单独的控件,而控件添加的时候还要判断每一格的位置,而且代码复用性不高,因为每一种九宫格视图的控件边距,控件的宽高不同。
所以,是否可以写一个这样的模块,只需要提供一个子控件的frame就能够生成一个完整的九宫格视图呢?
以下是我的思路:
首先肯定是用一个类来管理整个模块的,所以创建一个UISodokuView类继承于UIScrollView:
——为什么是scollView?
——因为当需要添加的控件数量较大时,显然会超出手机屏幕范围,只有用scrollView才能完全显示,也就是说,只要用户提供了单个控件的frame、控件数量以及每一行控件的个数,就能够确定UIScrollView的contentSize大小,从而添加。
UISodokuView类
.h文件
@interface UISodokuView : UIScrollView //基础控件的frame @property(nonatomic,assign)CGRect itemFrame; //要添加的控件数量 @property(nonatomic,assign)NSInteger itemsNumber; //每一行控件数量 @property(nonatomic,assign)NSInteger itemsNumberInOneLine; //存储控件的array @property(nonatomic,strong)NSMutableArray *itemsArray; //scrollView宽度 @property(nonatomic,assign)NSInteger scrollViewWidth; //scrollView高度 @property(nonatomic,assign)NSInteger scrollViewHeight; //初始化,但并没有添加控件 -(instancetype)initWithItemFrame:(CGRect)frame andItemsNumber:(NSInteger)itemsNumber andItemsNumberInOneLine:(NSInteger)itemsInOneLine;
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻标题:iOS实现九宫格自动生成视图-创新互联
网站网址:http://cdiso.cn/article/ceoosg.html