猫学习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居然进不去。喵了个咪的猫猫就醉了。更醉的是发现居然在别的站点有转载的,瞬间鸡冻了喵。

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • CRTMP视频直播服务器部署及测试

    CRTMP视频直播服务器部署及测试一、搭建CRTMP视频直播服务器1、下载CRTMP服务器软件svnco–usernameanonymous–password””https://svn.rtmpd.com/crtmpserver/trunkcrtmpserver2、进入一下目录,

  • vscode 快捷键绑定

    vscode 快捷键绑定最近迷上了vscode,用它开发.netcore程序十分方便,智能提示也很好用,插入智能提示的选项是enter键或者tab键,可惜我以前习惯使用vs写c#,习惯用空格做智能提示的选择,多方查找资料甚至准备采用开发一个vscode插件的方式解决,后来无意间查看官方文档,利用vscode的快捷键绑定功能是可以做到的。打开vscode,进入文件->首选项->键盘快捷方式查看’tab’的功能,其中就有一项:

  • Java异常类型及处理

    Java异常类型及处理前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,代码中怎么处理的,应该怎么使用,底层怎么实现的等等,可能就会有些不是那么清晰。本文基于此详细捋一下异常类型,实现以及使用时应怎么注意。一、异常实现及分类1.先看下异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。上图已经足够帮我们解释和理解异常…

  • ubuntu 18.04 安装桌面_已安装更新版本的onedrive

    ubuntu 18.04 安装桌面_已安装更新版本的onedrive问题在Ubuntu18.04上安装Onedrive问题背景对于文档的同步,还是喜欢用Onedrive,主要因为Onedrive对文档的在线编辑支持很好。Onedrive初始免费容量5G,加上某宝2块钱买的邀请永久扩容10G,总共15G,够我用了。因为有时候需要在实验室的电脑记记笔记,所以问题由此产生。解决办法Ubuntu上的Onedrive貌似没有图形化界面,我安装的是Onedriv…

  • 如何在linux中安装VMwareTools

    如何在linux中安装VMwareToolsvmwaretools是虚拟机VMwareWorkstation自带的一款工具,它的作用就是使用户可以从物理主机直接往虚拟机里面拖文件。如果不安装它,我们是无法进行虚拟机和物理机之间的文件传输的,当然它的功效不止于此,平时我们操作虚拟机的时候,在物理机和虚拟机之间必须使用CTRL切换,如果安装之后我们就不必使用键盘切换,直接便可退出,使得虚拟机真正成为了电脑的一部分,那么这么神奇的vmware

  • xshell评估期已过怎么办

    xshell评估期已过怎么办

    2021年10月17日

发表回复

您的电子邮箱地址不会被公开。

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