博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识
阅读量:5934 次
发布时间:2019-06-19

本文共 3428 字,大约阅读时间需要 11 分钟。

常见属性和方法

一 、UIVIew 常见属性1.frame 位置和尺寸(以父控件的左上角为原点(0,0))2.center 中点 (以父控件的左上角为原点(0,0))3.bounds 位置和尺寸(以自己的左上角为原点 (0,0))4.transform 形变属性(缩放,旋转,平移)5.backgroundColor 背景颜色6.tag 标识(父控件可以根据这个标识找到对应的子控件,同一个父控件中的子控件不要一样)7. hidden 设置是否要隐藏8.alpha 透明度(0~1);9.opaque 不透明度(0~1);10.userInteractionEnabled 能否跟用户进行交互(YES 能交互)11.superView 父控件12.subviews 子控件13.contentMode 内容显示的模式 拉伸自适应例如:[view viewWithTag:10];UIView常见方法1.addSubview添加子控件,被添加到最上面(subviews中的最后面)2.removeFromSuperview从父控件中移除3.viewWithTag:父控件可以根据这个tag 标识找到对应的控件(遍历所有的子控件)4.insertSubview:atIndex:添加子控件到指定的位置5.利用两个类方法来执行动画的两个方法+(void) beginAnimations:(NSString *)animationID context:(void *)context;/**..需要执行动画的代码..**/+(void) commitAnimations;6.利用blok 执行动画/* duration 动画持续时间  animations 存放需林执行动画的代码 completion 存放动画完毕后需要执行的操作代码 */+ (void) animateWithDuration:(NSTimeInterval) duration animations:(void (^)(void))animations completion:(void(^)) (BOOL finished) completion二、UIControl1.只要继承UIControl ,就能简单地处理事件(点击事件,值改变事件)2.继承了UIControl的子类UIButton.UISlider.UISwitch .UIDatePicker 等等3.当需要监听了一个子控件事件的时候,解决步骤:1>.先看它是否继承自UIControl2>.再看它内部是否有delegate属性4.常用属性1>enabled 能否处理2>contentVerticalAlignment 内容在垂直方向上的排布方式3>contentHorizontalAlignment 内容在水平方向上的排布方式5.常用方法1> 添加监听器/* target 监听器对象 action 事件触发时所调用的方法,调用target的方法 */-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;2> 删除监听器//删除监听器后,事件触发时就不会再通知监听器了,也就不会再调用target的action方法了-(void roemoveTarget:(id)target action:](SEL)action forControlEvents:](UIControlEvents) controlEvents);3> 获得所有的监听器对象-(NSSet *) allTargets;三、UILabel1.常见属性1>text 所显示的文本内容2>textColor 文本颜色3> font 字体4> shadowColor 文字的阴影颜色5> shadowOffset 阴影的偏差距离(width水平方向的偏差距离,height垂直方向的念头距离,正数下边)6> textAlignment 设置文字的排布方法(偏左,偏右,居中).7>numberOfLines 允许文字最多有几行数(如果为0,自动换行).
四、UIButton//.UISlider .UISwitch .UIDatePicker等等1.常见属性1>titleLabel 获取内部的UILabel 对象2>imageView 获取内部的UIImageView对象2.常见方法1>设置内部UILabel 显示的文本内容//设置按钮文本的时候不能 btn .titleLabel.text  = @"4324324";- (void)setTitle:(NSString *)title forState:(UIControlState)state;                     // default is nil. title is assumed to be single line2> 设置内部UILabel的文字颜色- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default if nil. use opaque white3>设置内部UILabel 的文字阴影颜色- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil. use 50% black4>设置内部UIImageView的图片- (void)setImage:(UIImage *)image forState:(UIControlState)state;                      // default is nil. should be same size if different for different states5>设置内部UIImageView的图片- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil6>下面两个方法需要交给子类去重写//返回没物控部UILabel的frame (位置和尺寸)-(CGRect)titleRectForContentRect:(CGRect)contentRect;//返回内部UIImage的尺寸和位置-(CGRect)imageRectForContentRect:(CGRect) contentRect;7> 下面这些方法可以获取不同状态下的一些属性- (NSString *)titleForState:(UIControlState)state;          // these getters only take a single state value- (UIColor *)titleColorForState:(UIControlState)state;- (UIColor *)titleShadowColorForState:(UIControlState)state;- (UIImage *)imageForState:(UIControlState)state;- (UIImage *)backgroundImageForState:(UIControlState)state;- (NSAttributedString *)attributedTitleForState:(UIControlState)state NS_AVAILABLE_IOS(6_0);

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类: 
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4852677.html,如需转载请自行联系原作者
你可能感兴趣的文章
Vue2.0 + ElementUI 手写权限管理系统后台模板(三)——页面搭建
查看>>
解决vue多个路由共用一个页面的问题
查看>>
redux: redux以及中间件redux-saga思路的代码实现模板
查看>>
读书笔记(04) - 错误监控 - JavaScript高级程序设计
查看>>
[LeetCode] 588. Design In-Memory File System
查看>>
K8S如何限制资源使用
查看>>
蚂蚁金融科技全面开放战略背后的技术布局
查看>>
Android 64bit,32bit谁更快?
查看>>
【数据结构_浙江大学MOOC】第三四五讲 树
查看>>
ABAP Development Tools的语法高亮实现原理
查看>>
redis学习笔记(五)--主从复制
查看>>
一道用hasOwnProperty给数组去重的面试题
查看>>
支付宝小程序爬坑之路【1】
查看>>
Redis随笔-rename效率问题
查看>>
【问题解决】Safari不能保存session的处理方法
查看>>
快速了解整个阿里云物联网平台
查看>>
ES学习笔记(13)--Set
查看>>
vue 解决循环引用组件报错的问题
查看>>
手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)
查看>>
ES6中的Set数据结构
查看>>