UI视图控件、视图嵌套、SubView、Tag 的使用

本文深入探讨了iOS开发中的Swift编程语言,分享了实际项目中的优化策略与最佳实践,帮助开发者提高应用性能与用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    

    ViewController * vc =[[ViewController alloc]init];

    self.window.rootViewController = vc;

    self.window.backgroundColor = [UIColor grayColor];

    //     makeKeyAndVisible:让窗口是主窗口,并且显示在屏幕上

    [self.window makeKeyAndVisible];

 

//创建view1 绿色

    UIView *view1 = [[UIViewalloc]initWithFrame:CGRectMake(100,200, 200,200)];

    view1.backgroundColor = [UIColor greenColor];

    [self.window addSubview:view1];

 

//创建view2 橙色

    UIView *view2 = [[UIViewalloc]initWithFrame:CGRectMake(50, 300, 300, 200)];

    view2.backgroundColor = [UIColor orangeColor];

    [self.window addSubview:view2];

//由于view2是后创建,所以系统默认为view2覆盖在view1上面

计算机生成了可选文字:

计算机生成了可选文字:

  

 

//   在同一个父视图中

//   1view1 移动到最上面(即移动到view2上面)

//    [self.window bringSubviewToFront:view1];

 

//   2、把一个视图移动到底下

//     view2移动到下一层

//    [self.window sendSubviewToBack:view2];

    

//   3、交换两个视图的位置

// -(void)exchangeSubviewAtIndex:(NSInteger)index1withSubviewAtIndex:(NSInteger)index2;

    

//    subviews(所有子视图组成的数组)->

//   self.window subviews

//   NSLog(@"%@",self.window.subviews);

    

    

//   初始化视图的顺序就是把视图存放到subviews这个数组里面的顺序

//   改变视图的位置 就是改变subviews 数组里面元素的位置(这里是指 交换位置)

    

//   UIView * view = self.window.subviews[2];

//   NSLog(@"%@",view);

//   

//    [self.window exchangeSubviewAtIndex:2withSubviewAtIndex:1];

 

//--------------插入一个新视图,并调整他的位置----  

//   UIView * insertView = [[UIViewalloc]initWithFrame:CGRectMake(80,250,80,80)];

//   insertView.backgroundColor = [UIColor grayColor];

//   [self.window addSubview:insertView];

    

// 1 插入一个视图insertView到另一个视图view1上面

//    [self.window insertSubview:insertView aboveSubview:view1];

计算机生成了可选文字:

 

// 2 插入一个视图insertView到另一个视图view2上面

   [self.window insertSubview:insertView aboveSubview:view2];

计算机生成了可选文字:

    

// 3 插入到哪一个视图的底下

//    [self.window insertSubview:insertView belowSubview:view1];

计算机生成了可选文字:

 

-------------------Tag---------------------    

//  bag:标记 标签 标号 ->又相当于同一个父视图里面的身份证号

 

    insertView.tag = 100;//给上文中已出现的视图insertViewtag值为100

 

//  可以通过tag 在他的父视图上找到这个视图

    

//  viewWithTag:在一个父视图上面查找有木有tag值是多少的视图

    UIView *v= [self.window viewWithTag:100];

    

//  v 就是insertView

    v.backgroundColor = [UIColor redColor];

    

//  显示tag值为100的视图的透明度

    NSLog(@"%f",v.alpha);

    

//   移除视图

//   [v removeFromSuperview];

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值