[IOS]今天开始学UI---UIView

这篇博客探讨了iOS中的UIView,指出它构成了屏幕上所有可见元素的基础。UIView不仅可以显示图像和文字,还负责管理布局和用户交互。博主介绍了UIView的几何特性,如frame、bounds和center,并强调了在坐标系统中的理解。此外,还讨论了UI设计原则,包括人性化、简明和美感,以提升用户体验。
摘要由CSDN通过智能技术生成

Everything you see on Screen is UIView.

你所看到的一切皆为UIView.


你在屏幕上所看到一切的 都是view 点击 滑动  触摸等活动也是和View所进行的

就像上图里面的时钟应用 就是由各种View不同的View堆积而成 尽管他们看起来是一个整体一样

同时UIView也是一切屏幕所显示的 SupClass  无论是自定义 还是还是系统自带的  都是继承自UIView


首先什么是UIView 嗯 大概就是  一块长方形的区域  区域的大小 颜色 位置都可以由你来指定 就像画布


UIView可以做什么呢?

1.可以呈现图像,文字,提供用户基本的信息,当然也可以呈现给用户一些非常Cooooooool的动画 

2.UIView 管理布局 UIView 里面也可以添加其他的子视图(SubView),每个子视图(SubView)都能个性化的展示自己,或者可以说UIView就是一个舞台,各种View争奇斗艳。一个Parent View可以管理若干干Child View(>=0),若干个Child VIew 只能有一个共有Parent View。

3.与用户进行交互

UIView的父类 是UIResponder 该类用于处理控制事件,所以UIView也完美的继承了他父亲的遗志,与用户进行交互。对用户触碰屏幕的行为进行回应和处理。


UIView可以认为是 一张纸,你可以画出你想要的效果。理论上说你完全可以自己重写UIView里面的各种的方法来实现你想要的各种效果比如UITableView,但是

如果重写UIView整体工作量太大 不如直接继承UITableView再做部分UIView的重写 来达到自己想要的效果

首先我们需要创建一张纸(UIViewGeometry):

 UIView的几何特性

先了解一下在UIKit中的坐标体系


坐标的原点在左上 和我们平时的几何坐标系并一样  但是这并不一样 这也比较容易掌握

现在我们了解UIView的几个属性 frame,bounds,center

frame,center都是对应与父视图而言的  frame 决定了UIView在其父视图位置,大小(CGRect结构体封装了 x,y,width,heigth属性)。center属性决定了当前View在父视图的中心点的位置(CGPoint 结构体封装了x,y)。frame的x,y和center的x,y并不通,frame的x,y对应的是UIView的起始左上角位置,而center的x,y则是UIView自身的中心点在父视图中的位置。

bounds 则是指定该view在本身坐标系统中 的位置和大小(CGRect类)


所以当我们创建一个UIView的时候可以这样:

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 200, 300)];

指定了在x=0,y=100的地方绘制该view的左上点 width=200,height=300 宽200 高300

然后加进父View,默认颜色白色 如果 父视图也是白色的 很不幸我们看不到他 虽然他一直在那里。


所以我们需要做一些调整以使得我们能看到他(UIViewRendering)(我也不知道这改怎么说 或者说UIView要开始表演一些特技,你不能叫我加特技,我就加不然别人一眼就觉得duang,这么假)

backgroundColor(View的背景颜色),alpha(透明度0 完全透明 1不透明) 也可以用opaque 属性设置是否完全透明或者不透明,hidden设置能否看到他

所以我们加些特效上去

    [self.view.backgroundColor = [UIColor whiteColor];
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 200, 300)];
    view.backgroundColor = [UIColor blueColor];
    view.alpha = 0.5;
    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 300)];
    view2.backgroundColor = [UIColor redColor];
    view2.alpha = 0.5;
    UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 200, 300)];
    view3.backgroundColor = [UIColor yellowColor];
    view3.alpha = 0.5;
    [self.view addSubview:view];
    [self.view addSubview:view2];
    [self.view addSubview:view3];



为什么三原色调出来是这个效果难过



更多方法 和 属性 直接Xcode直接查询 或者看他的头文件也是可以的


接下来要讲的是人机界面,无论是什么View最后是要给人用的

既然给人用的 那么就需要注重UI Design 用户界面的设计规则

UI Design设计需要遵从以下三个方面:1.人性化 2.简明 3.美感

1.人性化 如果一个app 设计的非常反人类 比如要输入10000的值,但是 一次只能从0按加号 加一加到10000 

我们需要知道的一点就是 Technology makes life better. 科技使生活更美好。如果一个UI的常用按键放在 人手不能轻易碰到的一角 那么一定是一件非常糟糕的事情

2.简明 Simple is beauty.也许你做出来的东西 非常的Cooooool 用了很多高深的技术,然后确实展现出的效果也让人 amazing 但是 用户并不能方便的操作。

3.深度 什么是深度?都简明了还有什么深度 我们举个栗子例子,多啦A梦的口袋是不是很赞,然而你可以从里面翻出来很多amzing的东西,有时候让人惊喜的方式有很多,要让用户发现原来还有这种amzing的功能啊,suprise存在深处需要慢慢发现。


我们选择Iphone 和 Mac本身选择的是一种简单的美 (Linux就算了) 因为简单容易操作同时还带有非常Coooool的界面效果


1.如何人性化

 充分利用屏幕

image: ../Art/focus_on_main_task_2x.png

最好主要内容放在左上部分,从人的行为习惯上来说这一部分的注意点比较多 


因为很重要所以说三遍,三遍,三遍(选择重点)


并不是所有功能都要放在一起,在布局上应该上有重点 并且便于用户进行操作 视频的播放功能需要快进 后退(有时这两个都是嫌多)播发 刷新 功能 有选择性的放到工具栏,而不是一起堆在那里让用户自己慢慢的选。


2.如何简明


严格的说这也属于人性化


发短信功能  需要什么 颜色区分自己和别人的说  我在右边 你在左边  不能让用户觉得我根本看不清我说的是啥?


3.如何深度

就像你用Calendar这个自带app


not enough i want more


still more more specifier


深度的展示更多的信息 给予越来越多的功能 越来越多的惊喜 就想礼物 盒子里套盒子





that's all thx

我知道我排版非常的糟糕 简直可以说是噩梦了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值