IOS 纯代码添加 Button Image Label 添加到自定义View中
@interface ViewController ()
/**获取.plist数据*/
@property (nonatomic,strong) NSArray *apps;
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; //九宫格的总列数
int totalColumns=; //1.1个格子的尺寸
CGFloat appW=;
CGFloat appH=; //2.计算间隙 =(控制器view的宽度 -5*应用宽度)/应用宽度+1
CGFloat margin=(self.view.frame.size.width-totalColumns*appW)/(totalColumns+); //3.要的应用个数创建对应的格子 for (int index=; index<self.apps.count; index++)
{
//3.1 创建1个格子
UIView *appView=[[UIView alloc]init]; //设置背景色
appView.backgroundColor=[UIColor whiteColor]; //3.2计算行号和列号
int row =index /totalColumns;
int col =index % totalColumns; CGFloat appX =margin+ col*(appW + margin);
CGFloat appY =margin+ row*(appH + margin); appView.frame=CGRectMake(appX, appY, appW, appH); //3.3添加格子到控制器的View
[self.view addSubview:appView]; //3.4添加 内部的小控件
//取出index位置对应的应用信息
NSDictionary *appInfo=self.apps[index]; //3.4.1添加图片
UIImageView *iconView=[[UIImageView alloc]init];
CGFloat iconW=;
CGFloat iconH=;
CGFloat iconX=(appW-iconW)*0.5;
CGFloat iconY=;
iconView.frame=CGRectMake(iconX, iconY, iconW, iconH);
//iconView.backgroundColor=[UIColor grayColor];
iconView.image=[UIImage imageNamed:appInfo[@"icon"]];
[appView addSubview:iconView]; //3.4.2 添加名字
UILabel *nameLabel=[[UILabel alloc]init];
CGFloat namgeX=;
CGFloat nameY=iconY+iconH;
CGFloat nameW=appW;
CGFloat nameH=;
nameLabel.frame=CGRectMake(namgeX, nameY, nameW, nameH);
nameLabel.backgroundColor=[UIColor greenColor];
nameLabel.text=appInfo[@"name"];
nameLabel.font=[UIFont systemFontOfSize:];//设置字体大小
nameLabel.textAlignment=NSTextAlignmentCenter;//字体居中
[appView addSubview:nameLabel]; //3.4.3添加下载按钮 UIButton *downloadBtn=[[UIButton alloc]init];
CGFloat downloadX=;
CGFloat downloadY=nameY+nameH;
CGFloat downloadW=appW-*downloadX;
CGFloat downloadH=; downloadBtn.frame=CGRectMake(downloadX, downloadY, downloadW, downloadH);
// downloadBtn.backgroundColor=[UIColor brownColor]; //设置按钮图片,普通状态
// downloadBtn.imageView.image=[UIImage imageNamed:@"buttongren"];
UIImage *normalImage=[UIImage imageNamed:@"buttongreen"];
[downloadBtn setBackgroundImage:normalImage forState:UIControlStateNormal]; //设置按钮图片,高亮状态
UIImage *highighedlImage=[UIImage imageNamed:@"buttongreen_highlighted"];
[downloadBtn setBackgroundImage:highighedlImage forState:UIControlStateHighlighted]; //设置按钮文字
//downloadBtn.titleLabel.text=@"下载";
[downloadBtn setTitle:@"下载" forState:UIControlStateNormal];
[downloadBtn setTitle:@"更新" forState:UIControlStateHighlighted]; //设置按钮文字的大小
downloadBtn.titleLabel.font=[UIFont systemFontOfSize:]; [appView addSubview:downloadBtn];
} }
IOS 纯代码添加 Button Image Label 添加到自定义View中的更多相关文章
- iOS纯代码工程手动快速适配
首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...
- iOS纯代码手动适配 分类: ios技术 2015-05-04 17:14 239人阅读 评论(0) 收藏
首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...
- ios - 纯代码创建collectionView
开始考虑好一点点时间,因为一般的都是用xib,或者storyboard来写的.这次用纯代码...废话较多请看 首先把storyboard干掉,工程里面的main干掉 由于干掉了storyboard则启 ...
- iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer
欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平.在这里光玩这些,就显得诚意不足了.特意拓展一下,再加几个UIButton ...
- Object-C iOS纯代码布局 一堆代码可以放这里!
前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是object-c,由于速成的很快,好累! 好在现在基本已经入了点门道了, ...
- Objective-C iOS纯代码布局 一堆代码可以放这里!
前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是objective-c,由于速成的很快,好累! 好在现在基本已经入了点门 ...
- iOS纯代码适配masonry中mas_的问题
//equalto 和 mas_equalto 是有区别的.但是我们不打算去了解,可以通过添加以下代码来统一. //注意!! 宏定义必须要放在 import 引入头文件之前! //define thi ...
- [ios]纯代码实现UITableViewCell的自定义扩展
(转)参考:http://blog.sina.com.cn/s/blog_65cbfb2b0101cd60.html 第一种, 简单的增加UITableViewCell一些小功能 例如在cell上面添 ...
- iOS 纯代码适配iPhone6,6+
链接地址:http://blog.csdn.net/codywangziham01/article/details/37658399 转自:http://www.maxiaoguo.com/cloth ...
随机推荐
- args 、kwargs不定参数通过列表、元组、字典传递
*args .**kwargs是不定参数的表达方法,一般用于函数形参.*args .**kwargs 作为传递参数的函数,在使用过程中,可对*args .**kwargs多个输入,但是效率或者比较麻烦 ...
- my26_Slave failed to initialize relay log info structure from the repository
重启了一下从库,忘记先stop slave ,直接mysqladmin shutdown关闭实例,结果起不来了 mysql> start slave;ERROR 1872 (HY000): Sl ...
- java——时间复杂度、动态数组
O(n)不一定小于O(n^2),要具体来看,而我们说的这种时间复杂度其实是渐进时间复杂度,描述的是n趋近于无穷的情况. 动态数组的时间复杂度: 添加操作:O(n) addLast()的均摊复杂度为O( ...
- robotFramework 读取Excel文件
1.Robotframework读取Excel文件 第一步:先安装ExcelLibrary 可以直接通过命令安装:pip install robotframework-ExcelLibrary 安装完 ...
- 配置WAMP完美攻略
软件介绍 Wamp Server 是一款功能强大的PHP 集成安装环境. 为了节约时间,本次使用 Wamp Server 来进行配置. wamp 的全部含义就是本篇文章的标题. 使用版本和操作系统 W ...
- powerdesigner 遇到的各种问题总结
1. 设置自增 打开表 -- 在具体列的前面双击即可添加各种属性 2. 生成sql 时设置编码 database --> generate database --> format --&g ...
- javassist fr8.0破解
主要是破解连接数的. 已破解的jar:http://download.csdn.net/download/wolf12/9834152 public static void main(String[] ...
- Linux cp命令拷贝 不覆盖原有的文件
cp 参数说明: -i或--interactive 覆盖既有文件之前先询问用户. -r 递归处理,将指定目录下的文件与子目录一并处理. -R或--recursive 递归处理,将指定目录下的所有 ...
- 自定义java代码快捷生成器使用与问题解决
对于很多的工作了有几年的开发人员来说,初期都是逐个单词语法的自己编写的.而一旦技术水平提高了到了一定的层次之后,在同时工作量的加大,要求我们必须加快提高工作效率.因此就可以利用必要的快捷开发手段和工具 ...
- razor表单验证
1.验证注解(Model) public class Student { //默认不能为空 [Required(ErrorMessage ="姓名不能为空")] [StringLe ...