ios中UI零散知识点记录

来源:互联网 发布:java字符串里的大括号 编辑:程序博客网 时间:2024/06/05 03:21

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 内容显示的模式拉伸自适应

14 关于UIViewautoresizingMask属性的研究

>14 UIView属性clipsTobounds的应用


.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


           7. [view viewWithTag:10],根据tag获取view视图里面为tag为10的视图

.UIControl

1.只要继承UIControl ,就能简单地处理事件(点击事件,值改变事件)


2.继承了UIControl的子类

UIButton.UISlider.UISwitch .UIDatePicker等等


3.当需要监听了一个子控件时间的时候,解决步骤:


1>.先看它是否继承自UIControl

2>.再看它内部是否有delegate属性


4.常用属性


1>enabled 能否处理时间

2>contentVerticalAlignment 内容在垂直方向上的排布方式

3>contentHorizontalAlignment 内容在水平方向上的排布方式

5.常用方法

1> 添加监听器

/*

 target 监听器对象

 action 事件触发时所调用的方法,调用target的方法

 */

-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;


2> 删除监听器

//删除监听器后,事件触发时就不会再通知监听器了,也就不会再调用targetaction方法了

-(void roemoveTarget:(id)target action:](SEL)action forControlEvents:](UIControlEvents) controlEvents);


3> 获得所有的监听器对象

-(NSSet *) allTargets;


,UILabel

1.常见属性

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 line


2> 设置内部UILabel的文字颜色

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default if nil. use opaque white

3>设置内部UILabel的文字阴影颜色

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil. use 50% black

4>设置内部UIImageView的图片

- (void)setImage:(UIImage *)image forState:(UIControlState)state;                      // default is nil. should be same size if different for different states

5>设置内部UIImageView的图片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil


6>下面两个方法需要交给子类去重写

//返回没物控部UILabelframe (位置和尺寸)

-(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);

六、 UIView属性clipsTobounds的应用

view添加view,并剪边(UIView属性clipsTobounds的应用)

如题,有两个view view1,view2

view1添加view2到其中,如果view2大于view1,或者view2的坐标不在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来


UIView有一个属性,clipsTobounds默认情况下是NO,

如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1clipsTobounds属性值。

view1.clipsTobounds = YES;



关于UIViewautoresizingMask属性的研究

UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。


enum {

   UIViewAutoresizingNone                 = 0,

   UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,

   UIViewAutoresizingFlexibleWidth        = 1 << 1,

   UIViewAutoresizingFlexibleRightMargin  = 1 << 2,

   UIViewAutoresizingFlexibleTopMargin    = 1 << 3,

   UIViewAutoresizingFlexibleHeight       = 1 << 4,

   UIViewAutoresizingFlexibleBottomMargin = 1 << 5

};

 


UIViewAutoresizingNone就是不自动调整。

UIViewAutoresizingFlexibleLeftMargin 自动调整与superView左边的距离,保证与superView右边的距离不变。

UIViewAutoresizingFlexibleRightMargin 自动调整与superView的右边距离,保证与superView左边的距离不变。

UIViewAutoresizingFlexibleTopMargin 自动调整与superView顶部的距离,保证与superView底部的距离不变。

UIViewAutoresizingFlexibleBottomMargin自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。

UIViewAutoresizingFlexibleWidth 自动调整自己的宽度,保证与superView左边和右边的距离不变。

UIViewAutoresizingFlexibleHeight 自动调整自己的高度,保证与superView顶部和底部的距离不变。

UIViewAutoresizingFlexibleLeftMargin  |UIViewAutoresizingFlexibleRightMargin自动调整与superView左边的距离,保证与左边的距离和右边的距离和原来距左边和右边的距离的比例不变。比如原来距离为2030,调整后的距离应为68102,即68/20=102/30


其它的组合类似。

0 0