猫学习IOS(五岁以下儿童)UI之360其他下载管理器广场UI

猫学习IOS(五岁以下儿童)UI之360其他下载管理器广场UI

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

猫分享。必须精品
下载材料:http://blog.csdn.net/u013357243/article/details/44486651

先看效果

这里写图片描写叙述
这里写图片描写叙述
主要是完毕了九宫格UI的搭建

代码

- (void)viewDidLoad {
    [super viewDidLoad];
//九宫格中每一个格子的宽
#define kAppViewW 80
//九宫格中每一个格子的高
#define kAppViewH 90
////九宫格中有多少个格子
#define kColCount 3
//九宫格中第一行距离屏幕最上边距离
#define kStartY 20

    /* 思路:将三个控件放到一个view中 没有通过双层for循环换行,而是通过第几个然后推断他的行和列 来定位他的xy坐标完毕 012 在第一行:相当于i/kColCount //行 一行:012 二行:345 三行:678 int row = i/kColCount; //列 一列:036 二列:147 int col = i%kColCount; */
    //每行的间隔
    CGFloat marginX = (self.view.frame.size.width - kColCount*kAppViewW)/(kColCount+1);
    //每列的间隔
    CGFloat marginY = 10;

    for (int i=0; i<12; i++) {

        //行 一行:012 二行:345 三行:678
        int row = i/kColCount;
        //列 一列:036 二列:147
        int col = i%kColCount;

        CGFloat x = marginX + col*(marginX+kAppViewW);//每一个view的X坐标
        CGFloat y = kStartY + +marginY + row * (marginY + kAppViewH);//每一个view的Y坐标


        UIView *appView = [[UIView alloc] initWithFrame:CGRectMake(x, y ,kAppViewW, kAppViewH)];
        [self.view addSubview:appView];


        //实现视图内部细节
        NSDictionary *dict = self.appList[i];//得到appList中的每一个字典元素(图像 标题 按钮图像)

        //UIImageView:应用程序图片
        UIImageView *icon  = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kAppViewW, 50)];
// icon .backgroundColor = [UIColor redColor];
        icon.image = [UIImage imageNamed:dict[@"icon"]];//设置图片
        //设置图片填充模式
        icon.contentMode = UIViewContentModeScaleAspectFit;//fill的会更大

        [appView addSubview:icon];

        //UILabel:应用程序名称
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(icon.frame), kAppViewW, 20)];
        label.text = dict[@"name"];
        label.font = [UIFont systemFontOfSize:13.0];
        label.textAlignment = NSTextAlignmentCenter;

        [appView addSubview:label];

        //UIButton:应用程序下载按钮
        UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(label.frame), kAppViewW, 20)];
        [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
        [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted];

        [button setTitle:@"下载" forState:UIControlStateNormal];
        // *** 一定不要使用下面方法。改动按钮标题
        // button.titleLabel.text = @"aaa";

        // 改动字体(titleLabel是仅仅读的)
        // readonly表示不同意改动titleLabel的指针,可是能够改动label的字体
        // 提示:按钮的字体是不区分状态的!

button.titleLabel.font = [UIFont systemFontOfSize:12.0]; [appView addSubview:button]; } }

思路

思路:将三个控件放到一个view中
没有通过双层for循环换行,而是通过第几个然后推断他的行和列 来定位他的xy坐标完毕
012 在第一行:相当于i/kColCount
//行 一行:012 二行:345 三行:678
int row = i/kColCount;
//列 一列:036 二列:147
int col = i%kColCount;

算法分析图

这里写图片描写叙述

注意点

设置图片与设置图片铺垫样子的时候有点不同,假设最后设置成UIViewContentModeScaleAspectFit的话会超出定义的边框,依照原来像素大小来布置。
icon.image = [UIImage imageNamed:dict[@”icon”]];
icon.contentMode = UIViewContentModeScaleAspectFit;

UILabel;UIButton的字体设置

        //设置标题
        label.text = dict[@"name"];
        //设置字体大小
        label.font = [UIFont systemFontOfSize:13.0];
        //设置Label居中
        label.textAlignment = NSTextAlignmentCenter;

button字体设置

[button setTitle:@"下载" forState:UIControlStateNormal];
        // *** 一定不要使用下面方法。改动按钮标题
        // button.titleLabel.text = @"aaa";

        // 改动字体(titleLabel是仅仅读的)
        // readonly表示不同意改动titleLabel的指针。可是能够改动label的字体
        // 提示:按钮的字体是不区分状态的!
        button.titleLabel.font = [UIFont systemFontOfSize:12.0];

未完待续。

。。

ps1:有想要源代码的能够加猫猫微信znycat QQ也能够:1764541256
——视频学习资料素材免费分析,哎自己一个人学习寂寞啊!喵!!

ps2:昨晚用同学电脑看自己写的咋样。发现csdn居然进不去。喵了个咪的猫猫就醉了。更醉的是发现居然在别的站点有转载的,瞬间鸡冻了喵。

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116871.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【C语言】双人格斗小游戏(源码)

    【C语言】双人格斗小游戏(源码)【C语言】双人格斗小游戏芜湖程序介绍:【C语言】实现双人控制的战斗小游戏/*————————————–project:双人小游戏anthor:LLz操作移动逆、顺时针旋转发射子弹玩家1456879 0玩家2adws qe 空格——————————–*/#include&lt

    2022年5月19日
    58
  • GB28181服务器_GB28181收费吗

    GB28181服务器_GB28181收费吗CarEye开发GB28181服务器有将近两年时间了,早期我们用纯C++开发了一个GB28181视频服务期,对外的接口是基于MQ协议的。这样开发出来的服务器主要有几个问题。1.SIP服务器和流媒体服务器是绑定在一个进程中的,因为没有分离,造成了视频处理和SIP服务器只能在一台服务器上运行,既不能打到GB28181协议的构架要求。也造成无法使用负载均衡的功能。2.对外接口采用了MQ通信方式。虽然MQ消息处理实时,对一些数据处理,如报警,对讲等。但MQ本身是重量级构建,不方便一些应用场景快速构建

    2022年8月31日
    2
  • 百度搜索引擎工作原理「建议收藏」

    百度搜索引擎工作原理「建议收藏」  关于百度以及其它搜索引擎的工作原理,其实大家已经讨论过很多,但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞快的。我们设计这个章节的目的,除了从官方的角度发出一些声音、纠正一些之前的误读外,还希望通过不断更新内容,与百度搜索引擎发展保持同步,给各位站长带来最新的、与百度高相关的信息。本章主要内容分为四个章节,分别为:抓取建库;检索排序;外部投票;结果展现。…

    2022年7月18日
    20
  • pip安装mysqlclient报错的解决

    pip安装mysqlclient报错的解决Windows环境下安装python包经常会有各种环境方面的问题及报错。最近在python36/37下升级安装mysqlclient包时产生了下面的错误,不论是百度还是StackOverflow上查找都没有真正的解决方案,于是写文章与大家一起分享下这类报错的解决方法。报错信息:Buildingwheelsforcollectedpackages:mysqlclientRunningsetup.pybdist_wheelformysqlclient…error

    2025年7月7日
    1
  • fast使用教程_ai基础教程入门图文

    fast使用教程_ai基础教程入门图文https://docs.fast.ai/如何利用好FASTAI——新版本fastai-v1.0快速入门https://m.oldpan.me/archives/fastai-1-0-quick-study

    2025年8月27日
    8
  • 世界人工智能大会在哪里举办_中国人工智能大会2021

    世界人工智能大会在哪里举办_中国人工智能大会20219月17日至19日,2018世界人工智能大会将在上海西岸举办。经国务院批准,大会由国家发展改革委、科技部、工业和信息化部、国家网信办、中国科学院、中国工程院和上海市人民政府共同主办。对于这场规模空前、大咖云集、专业尖端的全球AI盛会,上海市表示:这是上海服务服从国家战略、打造国家人工智能发展高地的一次重要亮相;将对标全球最高标准、汇集世界最优资源、展现最新创新成果、提供最佳现场体验、拿出上海最好…

    2022年9月28日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号