1. @interface ViewController ()
  2. /**获取.plist数据*/
  3. @property (nonatomic,strong) NSArray *apps;
  4. @end
  5.  
  6. @implementation ViewController
  7.  
  8. - (void)viewDidLoad {
  9. [super viewDidLoad];
  10.  
  11. //九宫格的总列数
  12. int totalColumns=;
  13.  
  14. //1.1个格子的尺寸
  15. CGFloat appW=;
  16. CGFloat appH=;
  17.  
  18. //2.计算间隙 =(控制器view的宽度 -5*应用宽度)/应用宽度+1
  19. CGFloat margin=(self.view.frame.size.width-totalColumns*appW)/(totalColumns+);
  20.  
  21. //3.要的应用个数创建对应的格子
  22.  
  23. for (int index=; index<self.apps.count; index++)
  24. {
  25. //3.1 创建1个格子
  26. UIView *appView=[[UIView alloc]init];
  27.  
  28. //设置背景色
  29. appView.backgroundColor=[UIColor whiteColor];
  30.  
  31. //3.2计算行号和列号
  32. int row =index /totalColumns;
  33. int col =index % totalColumns;
  34.  
  35. CGFloat appX =margin+ col*(appW + margin);
  36. CGFloat appY =margin+ row*(appH + margin);
  37.  
  38. appView.frame=CGRectMake(appX, appY, appW, appH);
  39.  
  40. //3.3添加格子到控制器的View
  41. [self.view addSubview:appView];
  42.  
  43. //3.4添加 内部的小控件
  44. //取出index位置对应的应用信息
  45. NSDictionary *appInfo=self.apps[index];
  46.  
  47. //3.4.1添加图片
  48. UIImageView *iconView=[[UIImageView alloc]init];
  49. CGFloat iconW=;
  50. CGFloat iconH=;
  51. CGFloat iconX=(appW-iconW)*0.5;
  52. CGFloat iconY=;
  53. iconView.frame=CGRectMake(iconX, iconY, iconW, iconH);
  54. //iconView.backgroundColor=[UIColor grayColor];
  55. iconView.image=[UIImage imageNamed:appInfo[@"icon"]];
  56. [appView addSubview:iconView];
  57.  
  58. //3.4.2 添加名字
  59. UILabel *nameLabel=[[UILabel alloc]init];
  60. CGFloat namgeX=;
  61. CGFloat nameY=iconY+iconH;
  62. CGFloat nameW=appW;
  63. CGFloat nameH=;
  64. nameLabel.frame=CGRectMake(namgeX, nameY, nameW, nameH);
  65. nameLabel.backgroundColor=[UIColor greenColor];
  66. nameLabel.text=appInfo[@"name"];
  67. nameLabel.font=[UIFont systemFontOfSize:];//设置字体大小
  68. nameLabel.textAlignment=NSTextAlignmentCenter;//字体居中
  69. [appView addSubview:nameLabel];
  70.  
  71. //3.4.3添加下载按钮
  72.  
  73. UIButton *downloadBtn=[[UIButton alloc]init];
  74. CGFloat downloadX=;
  75. CGFloat downloadY=nameY+nameH;
  76. CGFloat downloadW=appW-*downloadX;
  77. CGFloat downloadH=;
  78.  
  79. downloadBtn.frame=CGRectMake(downloadX, downloadY, downloadW, downloadH);
  80. // downloadBtn.backgroundColor=[UIColor brownColor];
  81.  
  82. //设置按钮图片,普通状态
  83. // downloadBtn.imageView.image=[UIImage imageNamed:@"buttongren"];
  84. UIImage *normalImage=[UIImage imageNamed:@"buttongreen"];
  85. [downloadBtn setBackgroundImage:normalImage forState:UIControlStateNormal];
  86.  
  87. //设置按钮图片,高亮状态
  88. UIImage *highighedlImage=[UIImage imageNamed:@"buttongreen_highlighted"];
  89. [downloadBtn setBackgroundImage:highighedlImage forState:UIControlStateHighlighted];
  90.  
  91. //设置按钮文字
  92. //downloadBtn.titleLabel.text=@"下载";
  93. [downloadBtn setTitle:@"下载" forState:UIControlStateNormal];
  94. [downloadBtn setTitle:@"更新" forState:UIControlStateHighlighted];
  95.  
  96. //设置按钮文字的大小
  97. downloadBtn.titleLabel.font=[UIFont systemFontOfSize:];
  98.  
  99. [appView addSubview:downloadBtn];
  100. }
  101.  
  102. }

IOS 纯代码添加 Button Image Label 添加到自定义View中的更多相关文章

  1. iOS纯代码工程手动快速适配

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  2. iOS纯代码手动适配 分类: ios技术 2015-05-04 17:14 239人阅读 评论(0) 收藏

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  3. ios - 纯代码创建collectionView

    开始考虑好一点点时间,因为一般的都是用xib,或者storyboard来写的.这次用纯代码...废话较多请看 首先把storyboard干掉,工程里面的main干掉 由于干掉了storyboard则启 ...

  4. iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer

    欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平.在这里光玩这些,就显得诚意不足了.特意拓展一下,再加几个UIButton ...

  5. Object-C iOS纯代码布局 一堆代码可以放这里!

    前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是object-c,由于速成的很快,好累! 好在现在基本已经入了点门道了, ...

  6. Objective-C iOS纯代码布局 一堆代码可以放这里!

    前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是objective-c,由于速成的很快,好累! 好在现在基本已经入了点门 ...

  7. iOS纯代码适配masonry中mas_的问题

    //equalto 和 mas_equalto 是有区别的.但是我们不打算去了解,可以通过添加以下代码来统一. //注意!! 宏定义必须要放在 import 引入头文件之前! //define thi ...

  8. [ios]纯代码实现UITableViewCell的自定义扩展

    (转)参考:http://blog.sina.com.cn/s/blog_65cbfb2b0101cd60.html 第一种, 简单的增加UITableViewCell一些小功能 例如在cell上面添 ...

  9. iOS 纯代码适配iPhone6,6+

    链接地址:http://blog.csdn.net/codywangziham01/article/details/37658399 转自:http://www.maxiaoguo.com/cloth ...

随机推荐

  1. 找到一篇关于 Oracle 全文检索实践 的文章

    http://www.iteye.com/topic/1118055 有详细的例子记录了Oracle 全文检索的使用.

  2. java坏境内存不够用 大量占用swap 临时加swap

    dd if=/dev/sda of=/tmp/mbr.bin   bs=512   count=1 查询2进制文件 file  看文件类型 思路 创建一个大文件作为swap 1.1创建文件 [root ...

  3. 修改ssh远程登录配置

    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori  #更改配置前进行备份,是vim /etc/ssh/sshd_config  #编辑sshd_conf ...

  4. Django易混淆问题

    1.Django本身提供了runserver 为什么不能用来 部署 runserver 方法是调试 Django 时经常用到的运行方式,它使用 Django 自带的  WSGI Server 运行,主 ...

  5. Silverlight FullScreen 全屏

    <UserControl x:Class="FullScreen.MainPage" xmlns="http://schemas.microsoft.com/win ...

  6. virtualenv(for python)

    完整: http://docs.jinkan.org/docs/flask/installation.html#installation   virtualenv 你很可能想在开发中用上 virtua ...

  7. RTT设备驱动之看门狗

    看门狗的喂狗一般放在空闲任务钩子函数里面. rt_thread_idle_sethook(idle_hook); static void idle_hook(void) { /* 在空闲线程的回调函数 ...

  8. CAD安装失败怎样卸载CAD 2014?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  9. (转)sdd for aix 安装及基本命令

    总结出自多个文件(自己做的项目和网上找的资料) 原文:http://blog.csdn.net/yujin2010good/article/details/11395701 一.sddpcm安装 要安 ...

  10. iscroll.js文档

    iScroll是高性能的.小尺寸的.无依赖关系的.支持多平台的滑动JavaScript库. 当然,不只是scroll,还有滚动.缩放.平移.无限滚动.视差滚动等. 为了达到更好的新能,所以iScrol ...