猫猫学IOS(五)UI之360等下载管理器九宫格UI

article/2025/1/11 10:05:55

猫猫分享,必须精品
素材下载地址: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 三行:678int row = i/kColCount;//列 一列:036  二列:147int 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 三行:678int row = i/kColCount;//列 一列:036  二列:147int 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];

未完待续。。。。

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


http://chatgpt.dhexx.cn/article/1go7dBjj.shtml

相关文章

猫猫学IOS(七)UI之UITextField代理事件_类似QQ登陆窗口的简单实现

猫猫分享&#xff0c;必须精品 素材代码地址: http://blog.csdn.net/u013357243/article/details/44587005 原文地址&#xff1a;http://blog.csdn.net/u013357243/article/details/44571163 先看效果图&#xff1a; 学习代码 // // NYViewController.m // 05-UITextFie…

国行Apple Watch 开启 ECG 心电图功能

国行Apple Watch 开启 ECG 心电图功能 设备要求 1.iphone 升级到最新系统 2.apple watch 升级到最新系统 3.最好有一台备用iphone来保证数据不被泄露 开通原理 1.我们需要有一个已开通ECG功能的appleId 2.登录此appleId到设备 3.同步健康App数据到本地 4.退出账号 5.登…

iOS开发:面向协议编程与 Cocoa 的邂逅 (上)

//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄 喵神原文地址&#xff1a;https://onevcat.com/2016/11/pop-cocoa-1/ 本文是笔者在 MDCC 16 (移动开发者大会) 上 iOS 专场中的主题演讲的文字整理。您可以在这里找到演讲使用的 Keynote&#xff0c;部分示例代码可以在 MDCC …

猫猫学IOS(十三)UI之UITableView学习(下)汽车名牌带右侧索引

猫猫分享&#xff0c;必须精品 素材代码地址&#xff1a;http://blog.csdn.net/u013357243/article/details/44727225 原文地址&#xff1a;http://blog.csdn.net/u013357243?viewmodecontents 先看效果图 代码 ViewController //ps&#xff1a;新建iOS交流学习群&#xf…

在android上模拟ios阴影效果

update一下&#xff0c;下面方法现在来看很low&#xff0c;其实最简单的是直接自定义一个drawable android上大部分时候阴影是不符合产品需求的&#xff0c;就比如我们就要求实现一个类似ios的圆形图片的阴影??? cardview阴影就挺好&#xff0c;可是他喵了个咪的&#xff0…

猫猫学IOS(六)UI之iOS热门游戏_超级猜图

猫猫分享&#xff0c;必须精品 素材地址:http://blog.csdn.net/u013357243/article/details/44539069 原创文章&#xff0c;欢迎转载。转载请注明&#xff1a;翟乃玉的博客 地址&#xff1a;http://blog.csdn.net/u013357243?viewmodecontents 先看效果图 思路 需求分析…

iOS汇编基础(二)寄存器

以arm64为例 xcode调试汇编1. xcode 查看运行时的汇编代码 debug -> debug workflow -> always show disassembly 2. Xcode改变pc值 register write pc 0x1005d6928 3. 单步运行一步汇编代码:ni 4. 读取某个寄存器 (lldb) register read x0x0 = 0x0000000000000000…

Unity简单操作: DoTween的onCom..回调函数里面执行错误 不返回哪条函数出错的解决方案,与iOS平台为什么需要勾选安全模式

目录 DoTween的onCom..回调函数里面执行错误 不返回哪条函数出错的解决方案 当然 在iOS平台 测试好了的话 需要勾选它&#xff0c;不然iOS机制原因 会导致onComxx回调 没有执行&#xff01; DoTween的onCom..回调函数里面执行错误 不返回哪条函数出错的解决方案 如下图&…

iOS汇编基础(一)

一 高级语言运行过程 二 汇编语言的特点 可以直接访问、控制各种硬件设备,比如存储器、CPU等,能最大限度地发挥硬件的功能能够不受编译器的限制,对生成的二进制代码进行完全的控制目标代码简短,占用内存少,执行速度快汇编指令是机器指令的助记符,同机器指令一一对应。每一…

STM32cubIDE 黑色主题_主题 | 喵咪旅行日志 VX可爱系列主题 BySasa

今天带来一款Sasa小宝贝儿投稿的可爱系列VX主题&#xff0c;应该也算是可爱系列里偏向简单的了。 鉴于前几次留言总是碰到隔着网线就不需要情商的DS。在前边先申明清楚吧&#xff0c;审美各有差异&#xff0c;不喜欢不用就好了。如果没有素质去diss投稿者作品&#xff0c;那就别…

tp框架怎么连接mysql_tp框架知识 之(链接数据库和操作数据)

框架有时会用到数据库的内容&#xff0c;在"ThinkPhp框架知识"的那篇随笔中提到过&#xff0c;现在这篇随笔详细的描述下。 一、链接数据库 (1)找到模块文件夹中的Conf文件夹&#xff0c;然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文…

thinkphp6开发cms项目之安装tp框架

1.安装thinkphp6框架&#xff1a; composer create-project topthink/think tp需要安装的扩展&#xff1a; composer require topthink/think-multi-app //多应用 composer require topthink/think-view //视图 composer require topthink/think-captcha //验证码2.如果运行ph…

我的服务器开发之路-安装thinkphp

http://www.thinkphp.cn/down/framework.html 下载thinkphp 我这边下载的是thinkphp5.0.3核心版 然后&#xff0c;打开xftp 4&#xff0c;将下载的thinkphp5.0.3的压缩包解压到tp503目录&#xff0c;并上传到/data/www/web目录 然后&#xff0c;打开浏览器&#xff0c;输入 域…

tp框架与mysql_TP框架对数据库的基本操作

数据库的操作&#xff0c;无疑就是连接数据库&#xff0c;然后对数据库中的表进行各种查询&#xff0c;然后就是对数据的增删改的操作&#xff0c;一步步的讲述一下框架对数据库的操作 想要操作数据库&#xff0c;第一步必然是要&#xff1a;链接数据库 一、链接数据库 (1)找到…

php tp框架,TP框架

tp:thinkphp框架&#xff0c;它也是一个轻量级的框架&#xff0c;它有中文社区&#xff0c;中文的帮助文档。它是国人开发的框架。 Thinkphp框架最初是由于企业级网站的开发和web网站的开发诞生的&#xff0c;最初诞生在2006年&#xff0c;它叫fsc,2007年正式更名为thinkphp,它…

TP5框架

第一次写博客 因为自己的技术是在有点差,所以想提升一下自己的技术,所有尝试写下博客,这次是关于TP5框架的, 开发PHP肯定要环境,手搭PHP不是不行,只是切换版本的时候特别麻烦,所以我下载了一个集成环境,用的是PHPstudy,小伙伴们可以自行去下载 ###我下载的是TP5.0完整版本,压…

Oracle轻量级客户端下载,Oracle轻量级客户端使用,Oracle轻量级客户端配置,本地同时安装服务器端和客户端,并实现plsql developer连接

Oracle轻量级客户端&#xff0c;不需要安装&#xff0c;绿色版&#xff0c;可以用于本地或者远程数据库连接&#xff0c;包含了基本的sqlplus&#xff0c;数据泵等功能。 官方解释如下&#xff1a;https://www.oracle.com/technetwork/database/database-technologies/instant…

使用ThinkPhp6框架搭建的管理系统

项目介绍 一款 PHP 语言基于 ThinkPhp6.x、Layui、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架&#xff0c;可用于快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的组件&am…

php 命令安装tp5,tp5.1框架的下载与安装方法步骤(图文)

大家可以都知道啊&#xff0c;tp框架5.1之前的版本都是可以在thinkphp的官网进行下载压缩包来安装框架的&#xff0c;那么在从tp5.1开始啊&#xff0c;就取消了下载压缩包安装的方法&#xff0c;那么我们如何进行下载呢&#xff1f; tp5.1的手册中开始就有提到tp5.1框架有两种安…

TP5.0框架上手准备

活到老学到老,祝上手顺利 1:首先需要安装并调试 方法一&#xff1a;在官网:[地址](http://www.thinkphp.cn),下载完整版的TP框架放在对应的www目录下; 方法二&#xff1a;利用composer进行安装&#xff0c;下载安装composer后&#xff0c;在DOS窗口切换到对应目录下输入&#x…