进击的KFC:UI(一)UIView及其子类

2023-12-22 08:38
文章标签 ui uiview kfc 进击 子类

本文主要是介绍进击的KFC:UI(一)UIView及其子类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pragma mark — UIView


UIView 代表一个矩形区域
创建一个视图的4步骤:
1.初始化: 起始点从(屏幕的)父视图左上角开始计算,为(0,0)点 (必须记住)
UIView *view = [[UIView alloc] initWithFrame:CGRect(100,100,200,100)];
2.设置一些属性
view.backgroundColor = [UIColor redColor];
3.显示视图
[self.window addSubView:view];
view.tag = 100; // 设置tag标记
4.释放内存
[view release];UIView的一些方法:
1.取出所有的子视图:
NSArray *subView = [self.window subViews];
2.取出视图view的中心点(以0,0原点为基点)
CGPoint center = view.center
NSLog(@“%@“,NSStringFromCGPoint(center)); // 把一个点转成字符串
// 更改视图的位置方法:
// 1.更改frame
// 2.更改中心点
3.bounds边界,子视图坐标系的原点
// 总结:改变父视图的bounds 像但与改变子视图的坐标系(也就是原点坐标)
// 父视图是不变的,只是改变子视图的位置
view.bounds = CGRectMake(0,30,200,100);
bounds 改的是父视图view,影响的是子视图view1.    // 或者说:改变父视图的bounds,控制子视图的坐标系,因为子视图是从父视图的原点(0,0)开始计算坐标的,可是现在父视图的原点通过bounds改变了,子视图所遵循的(0,0)点位置变了,按上面修改的数据,父视图之前的(0,0)变成了(0,30),那么子视图遵循的点(0,0)在(0,30)的上方,所以view1上移
创建一个子视图,添加到view上
步骤同上:UIView *view1 =[ [UIView alloc]initWithFrame:(0,0,50,50)];
view1.backgroundColor = [UIColor yellowColor];
[view addSubView:view1];// tips:子视图的起始位置 要根据父视图的左上角(0,0)点开始计算坐标// 添加子视图注意:必须把子视图添加到 父视图的范围之内,否则无法交互!

pragma mark — 视图重要属性

1.隐藏视图:如果,父视图被隐藏,那么父视图上的所有子视图,也会被隐藏
view.hidden = YES;
2. 透明属性:如果,父视图透明度发生变化,那么父视图上面的所有子视图,也会发生变化
view.alpha = 0.2;
3.取出某一子视图的 父视图
UIView *superView = view1.superView;
4. 获取本视图的所有⼦视图
NSArray *subView = view.subViews;
5. 给视图添加标记,被加完标记的视图可以通过viewWithTag:⽅法被取出来// 通过tag值取出视图// 注意:tag 不能给0(因为window是0);
UIView *tagView = [self.window viewWithTag:100];

pragma mark — 管理视图层次

// 把某一个子视图 放到最前面[self.window bringSubViewToFront:view1];
//把某一个子视图 放到最后面[self.window sendSubViewToBack:view1];
// 交换两个子视图的位置[self.window exchangeSubViewAtIndex:0 withSubViewAtIndex:1];
// 把view1从⽗视图上移除[view1 removeFromSuperView];

pragma mark — UILabel

// 显示文本的视图UILabel,继承UIView
// 初始化
UILabel *label =[ [UILabel alloc]initWithFrame:CGRectMake:(10,30,100,300)];
label.backgroundColor = [UIColor redColor];
label.text = @“wosdanvjdlfj odpsadfl opafon dsgoaf "
label.font = [UIFont systemFontOfSize:19]; // 设置字体大小
label.textAlignment = NSTextAlignmentLeft; // 左对齐,右对齐,居中
label.NumberOfLine = 0;  // 你想显示几行就填几,-1和0表示完全显示
label.lineBreakMode = NSLineBreakByTruncatingMiddle;//设置断行模式label.shadowColor = [UIColor redColor]; // 设置阴影颜色label.shadowOffset = CGSizeMake(2, 1); // 调整阴影的位置// 获取系统所有安装的字体NSArray *fountArray = [UIFont familyNames];NSLog(@"%@ %ld",fountArray,[fountArray count]);// 设置字体和字号:label.font = [UIFont fontWithName:fountArray[71] size:20];

小节:
UIView是所有可视化控件的基类。
UILabel是具有特定外观特定功能的视图。
UILabel侧重于⽂本的呈现。

pragma mark — 总结

App靠window来呈现内容,⼀个程序⼀般只创建⼀个window。
App中能看到的元素,都是UIView及其⼦类。
UIView作为所有可视化控件的BaseClass,提供了许多属性和⽅法。
显⽰效果控制(frame、alpha等)、视图添加和移除(addSubview:
等)、视图层次调整(bringSubviewToFront:等)等。
UILabel属于具体的视图,有⾃⼰的侧重点

这篇关于进击的KFC:UI(一)UIView及其子类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523304

相关文章

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gui库 找了好多,也比较了好多,最终决定使用的是还是 https://github.com/andlabs/ui 相信golang gui还会发展的更好,期待更优秀的gui库 由于andlabs

c++11工厂子类实现自注册的两种方法

文章目录 一、产品类构建1. 猫基类与各品种猫子类2.狗基类与各品种狗子类 二、工厂类构建三、客户端使用switch-case实现调用不同工厂子类四、自注册方法一:公开注册函数显式注册五、自注册方法二:构造函数隐形注册总结 一、产品类构建 1. 猫基类与各品种猫子类 class Cat {public:virtual void Printer() = 0;};class

获取所有classpath指定包下类的所有子类

1.问题 开发过程中,有时需要找到所有classpath下,特定包下某个类的所有子类,如何做到? 2. 实现 比较常见的解决方案是自己遍历目录,查找所有.class文件。 下面这个方法使用spring工具类实现,简化过程,不再需要自己遍历目录 /*** 获取在指定包下某个class的所有非抽象子类** @param parentClass 父类* @param packagePat

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。

UI自动化测试常见面试题

1、什么是UI自动化测试? UI自动化测试是一种通过模拟用户交互并自动执行UI操作的软件测试方法。它用于验证用户界面的功能和稳定性,以确保在不同的操作系统、浏览器和设备上的一致性。 2、UI自动化测试的优势和劣势是什么? 优势: 可以节省时间和成本,提高测试效率。 可以自动执行大量的重复测试任务,减少人为错误。 可以实现广泛的测试覆盖,包括不同的操作系统、浏览器和设备。 可以提供稳定

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 element-ui 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于

Unity(2022.3.41LTS) - UI详细介绍- Toggle(切换)

目录 零.简介 一、基本功能 二、属性和设置 三、使用方法 四、优化和注意事项 零.简介 在 Unity 中,Toggle 是一种常用的 UI 组件,用于表示一个布尔值的状态,类似于复选框。 一、基本功能 状态切换:Toggle 有两种状态,即选中和未选中。用户可以通过点击 Toggle 来切换其状态。关联变量:可以将 Toggle 的状态与一个布尔变量关联起来,以便