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

Everything you see on Screen is UIView.
摘要由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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值