UI第七天

第七天 开始学习ArkTS基础,理解声明式UI编程思想 学习 ArkTS 的声明式 UI 编程思想是掌握 HarmonyOS 应用开发的核心基础。 阅读详情

一些概念:

1. //NSUserDefaults

    //在iOS中有很多种方式来做本地化数据存储,之前我们学过的归档解档,plist文件

    //NSUserDefaults也是用来做本地化数据存储,它是轻量级的,它是以一种特殊的路径存储在手机中的,它存储的数据类型是有限制的,它类似于plist文件,存储的类型包括:NSArray,NSDictionary,NSData,NSSting,NSNumber,NSBool,NSDate,注意:不能存储自定义的对象,在NSArray和NSDictionary中只能存储以上类型

    

    //获得单例对象

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    //添加键值对 将数据添加到单例对象中

    [user setInteger:1 forKey:@"index"];

    //将数据同步到本地

    [user synchronize];

    

    //获取数据

    [user integerForKey:@"index"];


2.//什么是标签栏控制器?

    //它是UITabBarController的对象,它是用于管理视图控制器的,它继承自UIViewController,它的管理方式是数组的管理方式,特点就是数组中的元素之间是互不相扰的,他们之间是平行关系

    //导航控制器是继承自UIViewController,他是视图控制器的管理器,他是通过栈的管理方式来管理视图控制器,栈的特点是先进后出,元素之间是存在一定的联系的。

    //UINavigationController 导航控制器

    //UINavigationBar 导航栏

    //UINavigationItem 导航栏项

    

    //UITabBarController 标签栏控制器

    //UITabBar 标签栏

    //UITabBarItem 标签栏项


//第一种

    ViewController1 *vc1 = [[ViewController1 alloc] init];

    //设置标签栏项的标题

    vc1.tabBarItem.title = @"提莫";

    //设置标签栏项在正常状态下的图片

    vc1.tabBarItem.image = [UIImage imageNamed:@"tab_0"];

    //设置标签栏项在选中状态下的图片

    vc1.tabBarItem.selectedImage  = [UIImage imageNamed:@"tab_s"];

    UINavigationController *navi1 = [[UINavigationController alloc] initWithRootViewController:vc1];

    //第二种(常用)

    ViewController2 *vc2 = [[ViewController2 alloc] init];

    

    vc2.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"慎" image:[UIImage imageNamed:@"tab_1"] selectedImage:[UIImage imageNamed:@"tab_s"]];

    UINavigationController *navi2 = [[UINavigationController alloc] initWithRootViewController:vc2];

    //第三种 设置系统样式的标签栏项(用的少)

    ViewController3 *vc3 = [[ViewController3 alloc] init];

    vc3.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0];

    UINavigationController *navi3 = [[UINavigationController alloc] initWithRootViewController:vc3];

    //第四种

    ViewController4 *vc4 = [[ViewController4 alloc] init];

    vc4.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"劫" image:[UIImage imageNamed:@"tab_2"] tag:0];

    

    //设置徽标 一定要注意这个属性是需要接收字符串类型的

    vc4.tabBarItem.badgeValue = @"5";

    UINavigationController *navi4 = [[UINavigationController alloc] initWithRootViewController:vc4];

    NSArray *viewControllers = @[navi1,navi2,navi3,navi4];

    UITabBarController *tabBarC = [[UITabBarController alloc]init];

    tabBarC.viewControllers = viewControllers;

    //设置默认选中项

//    tabBarC.selectedIndex = 2;

    

    tabBarC.selectedViewController = viewControllers[1];

    

    self.window.rootViewController = tabBarC;


3.//更改标签栏项上的标题颜色

        [VC.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]} forState:UIControlStateSelected];



一些实用方法:

1.判断程序是不是第一次启动:

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    

    BOOL isFirst = [user boolForKey:@"isFirst"];

    

    label.text = isFirst?@"不是第一次启动":@"是第一次启动";

    

    if (!isFirst) {

        NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

        [user setBool:YES forKey:@"isFirst"];

        //数据同步到本地

        [user synchronize];

    }


2.不导入其他viewController的头文件,在AppDelegate中声明其他viewController


 NSString *VCName = [NSString stringWithFormat:@"ViewController%d",i+1];

 Class myClass = NSClassFromString(VCName);

 UIViewController *VC = [[myClass alloc] init];


3.进入程序然后退出,下次再进此程序,还在上次退出时的位置

(1).AppDelegate 遵守<UITabBarControllerDelegate>

(2)建立代理关系

    tabBarC.delegate = self;

(3)

 NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    NSInteger index = [user integerForKey:@"index"];

(4).

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

{

    NSLog(@"%ld",tabBarController.selectedIndex);

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    [user setInteger:tabBarController.selectedIndex forKey:@"index"];

    [user synchronize];

 }


#Objective - C - UI-design - 第七天 -UIKit框架-UIKit-导航控制器-UINavigationController UINavigationController UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,用它来管理多个视图控制器。 导航控制器可以称为是,管理控制器的控制器,主要管理有层 次递进关系的控制器。 效果: UINavigationController继承于UIViewController以栈的方式管理所控制的视图控制器,至少要有一个被管理的视图控制器: 阅读详情

相关推荐

从零到一:如何用YOLOv8和PyQt5打造你的第一个花卉识别桌面应用

本文详细介绍了如何使用YOLOv8和PyQt5从零开始构建一个花卉识别桌面应用。涵盖环境搭建、数据准备、模型训练、界面设计、模型集成与性能优化等全流程,帮助开发者快速掌握深度学习目标识别技术的实际应用。

weixin_29048775的博客 453

第七天,动画,UI

书看完辣=W=

油油的博客 362

Unity地形数据高效转换:从Terrain到3DMAX的OBJ导出实战

本文详细解析了Unity地形数据无法直接导入3DMAX的原因,并提供了高效转换的实战方案。通过编写自定义编辑器脚本,将Unity Terrain的高度图数据“烘焙”为静态网格模型,并以OBJ格式导出。文章重点讲解了核心代码逻辑、分辨率选择对模型精度的影响,以及在3DMAX中导入和优化模型的实用技巧,旨在打通Unity与3DMAX之间的数据协作壁垒。

sky77的博客 447

CSS第七天学习总结—— CSS 用户界面样式

CSS 用户界面样式 所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。 更改用户的鼠标样式 表单轮廓 防止表单域拖拽 鼠标样式 cursor 语法: li { cursor: pointer; } 设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。 属性值 描述 default 小白( 默认) pointer 小手 move 移动 text 文本 not-allowed 禁止 轮廓线 outline 给表单添加 outline

weixin_52819925的博客 112

组态王通过以太网与西门子S7-200 SMART PLC通讯案例详解

通过以上步骤,我们成功实现了组态王与西门子S7-200 SMART PLC的以太网通讯。这一技术不仅提高了工业自动化系统的灵活性和可靠性,还为初学者提供了一个实用的学习案例。希望本文能帮助您快速掌握组态王与西门子S7-200 SMART PLC的通讯技术。如有任何疑问,欢迎留言讨论!

2401_88785500的博客 2004

今天出一个candence 17.4 allego的安装教程

7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。

hcvinh的博客 2725

ui进阶第七天,触摸事件

一、主要知识点: 1. 4种触摸事件 2. 不接受触摸事件的三种情况 3. 了解响应者链条概念 4. 6种手势识别 5. 摇晃手势的实现,摇晃手势底层需要做的操作 二、iOS 中事件的介绍 1. 触摸事件 2. 加速计事件 3. 远程控制事件 三、响应者对象(UI

libo19930906的博客 543

汽车电子电气架构

控制器:从多独立 ECU → 域控制器(DCU) → 中央计算平台 + 区域控制器,硬件集成度持续提升,冗余减少;算力:从分散无集中算力 → 按域分配算力 → 全域算力集中,算力量级从 MIPS 跃升至 TOPS,支撑高阶智驾;网络:从低速 CAN/LIN 独占 → 以太网为主、总线为辅 → 高速以太网主干,数据传输速率提升千倍;软硬件:从软硬件深度绑定 → 初步解耦 → 完全解耦(SOA),实现 “硬件预埋、软件解锁”;线束。

LXY_LXY_的博客 1436

UI第七天 UIScrollView UIPageControl

UIScrollViewUIScrollView是可以滚动的view,UIView本⾝不能滚动,⼦类 UIScrollview拓展了滚动⽅⾯的功能。 UIScrollView是所有滚动视图的基类。 UITableView,UITextView等视图都是继承于该类。 使⽤场景:显⽰不下(单张⼤图);内容太多(图⽂混排);滚动 头条(图⽚);相册等 UIScrollView主要专长于两个方面

qq_31856835的博客 462

AI赋能数字人:打造与语音节奏完美匹配的高质量手势动画

想象一个场景:当你与一位数字人交谈时,它不仅能理解你的言语,还能恰到好处地挥动手臂、比划手势,就像真实的人类交流一样自然流畅。这正是当前AI技术致力于实现的目标——通过分析语音内容,自动生成与之相匹配的手势动作,为数字人赋予更加丰富的情感表达和非言语沟通能力。AI手势生成技术的出现,标志着数字人在模仿人类自然交流方式上迈出了重要一步。随着技术的不断成熟与应用场景的拓宽,未来我们可以期待更多富有表现力和情感互动的数字人出现在我们的日常生活中,开启人机交互的新篇章。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 792

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 675

UI第七天:UIScrollView、UIPageContro

⼀、UIScrollView的常⽤属性 UIScrollView是可以滚动的view,UIView本⾝不能滚动,⼦类 UIScrollview拓展了滚动⽅⾯的功能。 UIScrollView是所有滚动视图的基类。以后的UITableView, UITextView等视图都是继承于该类。 UIScrollView核⼼功能 UIScrollview主要专⻓于两个⽅⾯: 滚动:conte

luchong的博客 431

华为OD机试 - 荒岛求生 - 栈Stack(Python/JS/C/C++ 新系统 100分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2838

iOS-学习笔记-UI-第七天

为什么类内的方法还能创建所在类的实例? 1. 方法在创建对象实例时会只被加载到方法区中一次,同时方法会隐式传递一个参数,参数就是调用该方法的引用。而这个参数由系统起了一个行参的名字,叫self。于是方法内部使用self点调用属性时,self就会随着传入的引用不用,而变化 2. 既然方法只被加载一次,所以那个转换的隐式参数类型的确定,就会根据定义方法时所在的类文件的类名来

378

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

7天学会基础UI设计,开启你的创意之旅

你是不是也曾经看着那些漂亮的APP界面、网页设计,觉得“好想试试看自己做出来”?但一想到要学一大堆软件、理论、色彩搭配……就打退堂鼓了?其实,UI设计并没有你想象的那么难。只要你愿意花7天时间,系统地学习一些基础方法和工具操作,就能从零开始做出令人眼前一亮的设计作品。这篇文章就是为你量身打造的一份“7天入门指南”。它不是那种让你看得云里雾里的高深教程,而是从零开始、一步一脚印的教学计划,哪怕你从来没有碰过设计软件。UI设计到底是什么?它为什么重要?

2501_91889873的博客 1452

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入

由于第七天Blazor前端页面编写和接口对接的内容比较的多,所以这一章节将会分为三篇文章来进行讲解,大家可以认为分为早、中、晚来进行阶段性学习,从而提高学习效率😁。不熟悉Blazor的同学可以先看这篇文章大概了解一下。全面的ASP.NET Core Blazor简介和快速入门全面的ASP.NET Core Blazor简介和快速入门使用文档:https://www.blazor.zone/introduction。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1104

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Objective-c——UI基础开发第七天(自定义UITableView)

一、梗概:   1、自定义:headerView,footerVie,Cell等   2、双模型(遵循单一原则,类或模型实现的功能尽量单一)   3、计算文本的方法(针对不同文本内容而设置的宽高等)   4、设置footerView和headerView的注意事项(能修改的值可以是xmargin和高度,有些是不能修改的方法 ,采取方式:设置一个tempView,实际的操作都在te...

391

七天.NET 8操作SQLite入门到实战 - 第七天BootstrapBlazor UI组件库引入(1)

由于第七天Blazor前端页面编写和接口对接的内容比较的多,所以这一章节将会分为三篇文章来进行讲解,大家可以认为分为早、中、晚来进行阶段性学习,从而提高学习效率😁。不熟悉Blazor的同学可以先看这篇文章大概了解一下。全面的ASP.NET Core Blazor简介和快速入门全面的ASP.NET Core Blazor简介和快速入门使用文档:https://www.blazor.zone/introduction。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1346

CSS第七天总结——精灵图、字体图标、CSS 三角、CSS 用户界面样式、vertical-align 属性应用、溢出的文字省略号显示 、常见布局技巧、CSS 初始化

精灵图(sprites)的使用、字体图标的优点、字体图标的下载、字体图标的引入、字体图标的追加、字体图标加载的原理、案例:京东三角、什么是界面样式、鼠标样式 cursor、轮廓线 outline、 防止拖拽文本域 resize、图片、表单和文字对齐、解决图片底部默认空白缝隙问题、多行文本溢出显示省略号、 margin负值运用...

m0_55879104的博客 239

0基础学前端-----CSS DAY12

所谓界面样式就是更改一些用户操作样式,以更好提升用户体验。更改用户的鼠标样式表单轮廓防止表单域拖拽。 - 能够使用精灵图 - 能够使用字体图标 - 能够写出CSS三角 - 能够写出常见的CSS用户界面样式 - 能够说出常见的布局技巧

artist123abbb的博客 1173

鸿蒙开发一周学习路径{一周之后,你会回来感谢我}

《7天鸿蒙开发速成指南》系统介绍了鸿蒙应用开发的核心知识点。课程从开发环境搭建(DevEco Studio)、ArkTS语法基础开始,逐步深入UI设计(ArkUI框架)、数据管理、用户交互等关键技能,并重点讲解了多设备适配、分布式能力等鸿蒙特色功能。最后通过实战项目(智能备忘录)综合应用所学知识,涵盖性能优化、调试及上架全流程。配套推荐了B站学习资源(视频ID:xevakl1)和鸿蒙全栈开发资料,适合开发者快速掌握鸿蒙应用开发核心技能。

abcdlwt的博客 1148

第七天学习

java的基本结构就是顺序结构。

xiaoxiannb666的博客 1016

使用IDEA学JAVA第七天

今天是寒假学JAVA第七天,主要学习了集合框架、异常处理,希望大家认真学习。

violetyydswdlp的博客 1179

Alpha冲刺——第七天

Alpha第七天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV、ZQ、ZC负责前端开发,由JP和LL负责建库和服务器。 界面开发的教辅材料是《第一行代码》,利用Android Studio进行开发。 2.燃尽图 3.项目进展及安排 日期 已完成 ...

diaoyihun1602的博客 157
上一篇: UI第六天
下一篇: UI第八天
di_tang
博客等级 码龄13年 2粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值