IOS UI总结
一、UIView常见属性
1.frame 位置和尺寸(以父控件的左上角为原点(0,0))
2.center 中点(以父控件的左上角为原点(0,0))
3.bounds 位置和尺寸(以自己的左上角为原点(0,0))
4.transform 形变属性(缩放、旋转)
5.backgroundColor 背景颜色
6.tag 标识(父控件可以根据这个标识找到对应的子控件,同一个父控件中的子控件tag不要一样)
7.hidden 设置是否要隐藏
8.alpha 透明度(0~1)
9.opaque 不透明度(0~1)
10.userInteractionEnabled 能否跟用户进行交互(YES能交互)
11.superview 父控件
12.subviews 子控件
13.contentMode 内容显示的模式
二、UIView常见方法
1.addSubview:
添加子控件,被添加到最上面(subviews中的最后面)
2.removeFromSuperview
从父控件中移除
3.viewWithTag:
父控件可以根据这个tag标识找到对应的子控件(遍历所有的子控件)
4.insertSubview:atIndex:
添加子控件到指定的位置
5.利用两个类方法执行动画
+ (void)beginAnimations:(NSString *)animationID context:(void *)context;
/* ...需要执行动画的代码..*/
+ (void)commitAnimations;
6.利用block执行动画
/*
duration 动画持续时间
animations 存放需要执行动画的代码
completion 存放动画完毕后需要执行的操作代码
*/
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOLfinished))completion
三、UIControl
1.只要继承了UIControl,就能简单处理一些事件(点击事件、值改变事件)
2.继承了UIControl的子类:
UIButton、UISlider、UISwitch、UIDatePicker等等
3.当需要监听一个子控件事件的时候,解决步骤:
1> 先看它是否继承自UIControl
2> 再看它内部是否有delegate属性
4.常用属性
1> enabled 能否处理事件,跟UIView的userInteractionEnabled属性类似
2> contentVerticalAlignment 内容在垂直方向上的排布方式
3> contentHorizontalAlignment 内容在水平方向上的排布方式
5.常用方法
1> 添加监听器
/*
target 监听器对象
action 事件触发时所调用的方法,调用target的方法
controlEvents 事件类型
*/
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
2> 删除监听器
// 删除监听器后,事件触发时就不会再通知监听器了,也就不会再调用target的action方法了
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
3> 获得所有的监听器对象
- (NSSet *)allTargets;
四、UILabel的常见属性
1.text 所显示的文本内容
2.textColor 文本颜色
3.font 字体
4.shadowColor 文字的阴影颜色
5.shadowOffset 阴影的偏差距离(width水平方向的偏差距离,正数右边、height垂直方向的偏差距离,正数下边)
6.textAlignment 设置文字的排布方式(偏左、偏右、居中)
7.numberOfLines 允许文字最多有几行(默认是1,如果为0,自动换行)
五、UIButton
1.常见属性
1> titleLabel 获取内部的UILabel对象
2> imageView 获取内部的UIImageView对象
2.常见方法
1> 设置内部UILabel显示的文本内容
// 设置按钮文本的时候不能 btn.titleLabel.text = @"4324324";
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
2> 设置内部UILabel的文字颜色
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
3> 设置内部UILabel的文字阴影颜色
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;
4> 设置内部UIImageView的图片
// 设置内部UIImageView的图片不能:btn.imageView.image = [UIImage imagedName:@"0.png"];
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
5> 设置背景图片
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
6> 下面两个方法需要交给子类去重写,然后用于重新布局button。
// 返回内部UILabel的frame(位置和尺寸)
- (CGRect)titleRectForContentRect:(CGRect)contentRect;
// 返回内部UIImageView的frame(位置和尺寸)
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
7> 下面这些方法可以获取不同状态下的一些属性值
- (NSString *)titleForState:(UIControlState)state;
- (UIColor *)titleColorForState:(UIControlState)state;
- (UIColor *)titleShadowColorForState:(UIControlState)state;
- (UIImage *)imageForState:(UIControlState)state;
- (UIImage *)backgroundImageForState:(UIControlState)state;
IOS UI总结的更多相关文章
- [IOS]IOS UI指南
[IOS]IOS UI指南 众所周知,IOS的界面设计,越来越流行,可以说都形成了一个标准,搜集了一些资料,供自己以后学习使用! iOS Human Interface Guidelines (中文翻 ...
- IOS UI 第八篇:基本UI
实现图片的滚动,并且自动停止在每张图片上 - (void)viewDidLoad{ [super viewDidLoad]; UIScrollView *scrollView = [[U ...
- 国外IOS UI指南
国外IOS UI指南 众所周知,IOS的界面设计,越来越流行,可以说都形成了一个标准,搜集了一些资料,供自己以后学习使用! iOS Human Interface Guidelines (中文翻译) ...
- iOS UI的几种模式
iOS UI的几种模式: 1.平凡模式(原生控件组合): 2.新闻模式: 3.播放器模式: 4.微博模式:
- 通过实现一个TableView来理解iOS UI编程
推荐一篇神作: 通过实现一个TableView来理解iOS UI编程 http://blog.jobbole.com/61101/
- [iOS UI设计笔记整理汇总]
8.UIsearchbar放到Navigationbar 上(意思是建个View作为titleview) //此处调用的是第三方封装的SearchBar,也可以自定义. self.searchBarW ...
- iOS UI高级之网络编程(HTTP协议)
HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...
- iOS - UI - UIWebView
1.UIWebView UIWebView 是 苹果提供的用来展示网页的UI控件.它也是最占内存的控件. iOS8.0 webkit框架. WKWebView,相比UIWebView,节省了1/3~1 ...
- [iOS UI进阶 - 0] Quiartz2D
A.简介 1. 需要掌握的 drawRect:方法的使用 常见图形的绘制:线条.多边形.圆 绘图状态的设置:文字颜色.线宽等 图形上下文状态的保存与恢复 图形上下文栈 1.基本图形绘制* 线段(线宽. ...
- iOS UI布局调试工具
查看ios软件的ui布局有三种: 1.DCIntrospect 这种方式是开源的,我从github上clone下来后运行demo,运行遇到了问题:Xcode cannot run using t ...
随机推荐
- Python Web学习笔记之SSL,TLS,HTTPS
一. SSL 1. SSL简介 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持.SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可 ...
- SQL学习之SqlMap SQL注入
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了. 今天把我一 ...
- P3627 [APIO2009]抢掠计划
P3627 [APIO2009]抢掠计划 Tarjan缩点+最短(最长)路 显然的缩点...... 在缩点时,顺便维护每个强连通分量的总权值 缩完点按照惯例建个新图 然后跑一遍spfa最长路,枚举每个 ...
- JavaScript 添加新元素
JavaScript 添加新元素 版权声明:未经授权,严禁转载! 添加元素 创建元素 使用 JS 可以为一个已有的元素添加一个新的子元素. 第一步:创建空元素. - var elem = docume ...
- PHP微信公众号后台开发(Yii2实现)
本文内容较多,包括微信接入.获取微信用户信息.微信支付.JSSDK配置参数获取等部分.如果读者对微信开发没有一个主观上的认识,那么建议读者先研读微信公众平台开发者文档,然后再阅读本文,效果更佳!另外本 ...
- vs下C++内存泄露检测
本文原链接: http://www.cnblogs.com/zouzf/p/4152279.html 参考文章: http://msdn.microsoft.com/zh-cn/library/x98 ...
- 字符串分割(C++)(转载)
转载出自:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.html 经常碰到字符串分割的问题,这里总结下,也方便我以 ...
- Python3基础 while 斐波那契数列
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- gensim工具[学习笔记]
平台信息:PC:ubuntu18.04.i5.anaconda2.cuda9.0.cudnn7.0.5.tensorflow1.10.GTX1060 一.将copy_train.csv文件的内容进行分 ...
- Unity3D学习笔记(二十四):MVC框架
MVC:全名是Model-View-Controller View(视图层 - 顶层) Controller(控制层 - 中层) Model(数据层 - 底层) View(视图层) 说明:展现给玩家的 ...