(一)UI设计的一些常识
@interface ViewController ()
@end
注意小括号内不能放任何内容,在其内部写声明,可以封装起来内容不要给外界使用。
可以保证封装性。
@interface ViewController ()
- (IBAction)compute;
@property (nonatomic,weak) IBOutlet UITextField *num1;
@property (nonatomic,weak) IBOutlet UITextField *num2;
@property (nonatomic,weak) IBOutlet UILabel *result;
@end
三.常见的控件属性
CGRect tempFrame = self.head.frame;
tempFrame.origin.y -= 10;
self.head.frame = tempFrame;
通过frame既可以改位置,又可以改大小。
3.查错:
先在相应的方法里加断点,看有没有进入。
其次可以用NSLog。
打印结构体:NSStringFromCGRect();
发现不能改变图片大小:AutoLayout影响的。
代码的优化:例如上下左右四个按钮用一个方法实现。
多个按钮可以拖到同一个IBAction上面。
!当按钮对应的方法有参数时,会把被点击的按钮当做参数传入,例如是按钮,要传入UIButton *
注意修改IBAction后要重新连线。
标识不同的sender,绑定不同的tag。
输入一个数值Tag。
修改控件位置:修改frame与center。
3.设定center
center是CGPoint,可以修改位置。
4.设定bounds
bounds以自己的左上角为坐标原点,但是可以改尺寸。
bounds修改尺寸中心不动,但是frame改尺寸左上角不动。
总结:
frame:修改位置和尺寸(左上角不动)
center:修改位置
bounds:修改尺寸(中心不动)
5.通过代码创建按钮
viewDidLoad方法,在控制器和View被创建完毕后会调用。
创建->加入->改参数
UIButton *btn = [[UIButton alloc] init];
[self.view addSubview:btn];
btn.frame = CGRectMake(100, 100, 100, 100);
UIImage *imgNormal = [UIImage imageNamed:@"btn_01"];
UIImage *imgHighlighted = [UIImage imageNamed:@"btn_02"];
[btn setBackgroundImage:imgNormal forState:UIControlStateNormal];
[btn setBackgroundImage:imgHighlighted forState:UIControlStateHighlighted];
[btn setTitle:@"点我啊" forState:UIControlStateNormal];
[btn setTitle:@"点我干啥" forState:UIControlStateHighlighted];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
创建自定义代码的另一种方法:在storyboard中设置后会转为相应的代码。
使用的是buttonWithType类方法创建。
storyboard能办到的东西,代码都能办到。
修改系统默认的按钮类型:
使用代码设置按钮类型:
UIButton *btnInfo = [UIButton buttonWithType:UIButtonTypeRoundedRect];
系统自带的不必设置尺寸。用center来改位置。
通过代码来监听按钮事件:
Target代表的是当前View,这里的self就是当前View。
注意action要包装在@section内。
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
- (void)btnClick:(UIButton *)button{
NSLog(@"clich the button %@",button);
}
五.头尾动画
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5]; //默认是0.25秒一帧。
[UIView commitAnimations];
bounds为了保证center不变,有一个挪动。
IOS常见的属性改变(如背景变色)都可以使用系统的动画,复杂动画需要自己实现。
补充一些控件和属性
self.head.transform = CGAffineTransformMakeTranslation(deltaX, deltaY);
注意的是形变属性只允许有一种状态。这是在原来的基础上的改变,多次实施依然deltaX=-100。
解决方法是将deltaX叠加。
最有解决方案:在一个transform基础上生成新的。
self.head.transform = CGAffineTransformTranslate(self.head.transform, 0, -50);
旋转:注意是弧度制的旋转。
self.head.transform = CGAffineTransformRotate(self.head.transform, M_PI_4);
缩放:填写的是x方向与y方向的缩放比例。
self.head.transform = CGAffineTransformScale(self.head.transform, 1.2, 1.2);
特殊场合用transform,平时可用center、frame、bounds。
UIImage的使用
self.xxximgView.image = [UIImage imageNamed:@“…”];
禁用控件:
btn.enabled = NO;
Disable默认是变灰,也可以修改图片。
试着去精简自己的代码。
除去对象以外的内容用strong。
数据的处理方式:
先把一个数据组写成字典(NSMutabeDictionary可以用[ ]索引来创建键值对)。
然后把字典放入数组。
使用的时候先取出字典,然后使用。
对于key,为了防止前后不一致,可以用#define写宏
有的公司以k开头有的公司以公司前缀开头。
get方法里面千万不要用self,会产生死循环。
延迟加载(懒加载):保证性能,将属性放到get方法中初始化。
用到的功能在使用时加载,例如有些数据只有查看时才将相应的数据初始化。
可以通过重写相应的get方法,注意在get方法用 _xxx == nil来判断是否加载过,千万不要用self,会死循环。
转载于:https://www.cnblogs.com/aiwz/p/6154252.html
(一)UI设计的一些常识相关推荐
- 2018年这些UI设计趋势正在流行,跟上必拿高薪!
数字设计领域和时尚圈是一样的,总会有各种各样的趋势让人眼花缭乱.无论是用户界面的视觉元素,还是用户体验的细节,总有许多值得说道的新玩法和新方向.就目前来看,UI设计的大趋势是更加大胆新颖的视觉设计,通 ...
- 不得不存!UI设计新手不可错过的7条实用法则
本文编译自 Medium,作者是一位UX(User Experience, 用户体验)设计师,他通过自己学习UI设计的过程,总结出7条实用的法则,为UI设计新手提供了宝贵的经验. 序言首先,明确一点, ...
- 中剪取一种颜色的板块_不知道UI设计中APP界面版式如何排版?来看这个!
UI设计中APP的界面看似只有几个简单的元素组合起来, 所有元素的绘制可以说比较简单: 然而,当一个产品原型出来后,设计师如果单纯按原型来进行设计而不考虑信息化规则, 那么很多时候就会出现不协调的效果 ...
- 【可临摹UI设计干货】APP UI界面的版式设计理论!
APP UI 的界面看似只有几个简单的元素组合起来,所有元素的绘制可以说比较简单,然而当一个产品原型出来后,设计师如果单纯按原型来进行设计而不考虑信息化规则,那么很多时候就会出现不协调的效果.其实UI ...
- UI设计优秀可临摹素材|网页设计头部技巧
头部内容设计的一些技巧. 1. 关于尺寸 对于网页头部图片的大小是没有统一的答案.有时候设计师希望提供相对固定的数字,但网页设计最大的难点之一是很难确保每个屏幕尺寸的有效性.即使两个屏幕的尺寸相同,分 ...
- UI设计书籍推荐,这三本好书你不能错过
UI设计近几年发展时态一片良好,UI设计师也顺势成了热门行业,但是行业专业技能人才还是很稀缺的,对这一行有想法的朋友也要动起来了,我们需要必要的充电.这里小编整理了一些UI设计书籍,希望能帮到大家.U ...
- 移动UI设计学习总结
以下是我阅读书本得到的一些知识方面的总结: UI设计常识* 1.手机界面的构成被分为几个标准的信息区域:状态栏**,标题区,功能操作区,导航栏.** 2.APP运行在手机操作系统的软件环境中,其UI设 ...
- 学习UI设计都需要会什么
随着社会的不断发展,越来越多的人都注重外在表现,视觉上的影响力越来越大,UI设计行业在近几年广受企业的追捧,很多人都想要学习UI设计,那么学习UI设计都需要会什么呢?来看看下面的详细介绍. 学习UI设 ...
- 开发辅助 | 前端开发工程师对 UI设计、交互设计的认知
1.UI 用户界面 UI:User Interfase 用户界面 UID:User Interfase Designer 用户界面设计师,多指移动 app 的界面设计: 2.一个合格的 UI 设计师, ...
- UI设计中的作品集避坑指南
在作品集和简历的制作过程中,有很多注意事项值得关注,而这些能够让你的作品集和简历,更上一层楼.今天我总结出来的是设计师简历和作品集中常见的 10 个死穴.在此之前,我因为这些问题而拒绝过很多设计师的申 ...
最新文章
- SpringJpa多对多映射关系
- Java常量字符串String理解
- 判断字符串数组中是否所有字符只出现了一次
- python leetcode_Leetcode 常用算法 Python 模板
- 安卓学习日记:初识Android Studio · java环境配置和AS安装
- tensorflow是python自带的吗_python-Tensorflow-没有名为’_pywrap_tensorflow_int...
- HTML5 canvas游戏工作原理
- UIImagePickerController选择图片发送后旋转90度的问题
- [小型企业]不同vlan配置DHCP服务
- 云服务器里可以放多少网站,一台云服务器上可以放多少个网站
- 进程被kill原因_Linux内核系列 简析进程生命周期:从生到死的这一生(一)
- golang:cannot unmarshal number into Go value of type []json.RawMessage
- 14_python_练习题——excel操作
- 工程物资云平台_SaaS产品设计说明书(PRD)_施工企业工程项目物资材料管理软件系统
- 网口压线顺序_网线怎么接头 网线水晶头的接法和排序
- 申城「三日谈」:言汇百家,思通以达(SDCC 2017上海站PPT集锦)
- 计算机教师的应用计划书,教师信息技术个人提升计划
- 组装电脑千万不要随便买
- 使用函数打印n*n的乘法口诀表
- AsyncTask下载网络文件,并显示下载进度