您的位置:首页 > 产品设计 > UI/UE

IOS UI控件 - UIView详解

2015-10-22 21:13 627 查看

1,UIView常用属性

@property(nonatomic) BOOL clearsContextBeforeDrawing
//决定在视图重画之前是否先清理视图以前的内容,缺省值为YES
//如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码
//已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分

@property(nonatomic) BOOL clipsToBounds
//决定子视图是否被限定在当前视图的bounds中,缺省值为NO

@property(nonatomic) UIViewContentMode contentMode
//决定当视图边界变时呈现视图内容的方式

@property(nonatomic) CGFloat contentScaleFactor
//应用到当前视图的比例Scale

@property(nonatomic, copy) NSArray *gestureRecognizers
//当前视图所附加的手势识别器

@property(nonatomic, readonly, retain) CALayer *layer
//用于视图渲染的核心动画层

@property(copy, nonatomic) NSArray *motionEffects
//当前视图的运动效果,IOS7才开始拥有

@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled
//当前视图是否接受多点触控事件,缺省值为NO

@property(nonatomic, copy) NSString *restorationIdentifier
//该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已
//个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能
//还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的
//所有 父view controllers都必须有一个恢复标识符

@property(nonatomic, readonly, copy) NSArray *subviews //当前视图的所有子视图
@property(nonatomic, readonly) UIView *superview //当前视图的父视图

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode
//色调调整模式,开始用于IOS7
@property(nonatomic, retain) UIColor *tintColor
//色调颜色,开始用于IOS7

@property(nonatomic) CGAffineTransform transform //视图的仿射变换

@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
//决定与用户交互事件是否从被忽略并从事件队列中移除

@property(nonatomic, readonly) UIWindow *window //当前视图上的UIWindow对象


2,UIView中的方法

2.1,增加和移除一个view
[Subview removeFromSuperview];     //将Subview从当前的UIView中移除
[UIView addSubview:Subview];     //替UIView增加一个Subview
2.1 将一个子控件移动到最顶层或者最底层
[self.view bringSubviewToFront:view1];//将view1子控件移动到所有view的最上面
[self.view sendSubviewToBack:view4]; //将view4子控件移动到所有view的最底部
2.3
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
//通过view的index交换两个view的层级
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex: (NSInteger) index2;

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
NSInteger index = [[UIView subviews] indexOfObject:Subview名称];//取得Index
[UIView viewWithTag:NSInteger];  //通过标记得到view 返回值为UIView
[UIView subviews] ;  //取的UIView下的所有Subview

<pre name="code" class="objc">- (CGSize)sizeThatFits:(CGSize)size; // return 'best' size to fit given size. does not actually resize view. Default is return existing view size
- (void)sizeToFit; // calls sizeThatFits: with current view bounds and changes bounds size.
2.4 view的回调方法//当加入视图完成后调用 (void)didAddSubview:(UIView *)subview //当视图移动完成后调用 (void)didMoveToSuperview //当视图移动到新的WINDOW后调用 (void)didMoveToWindow //在删除视图之后调用 (void)willRemoveSubview:(UIView *)subview //当移动视图之前调用 (void)didMoveToSuperview:(UIView
*)subview //当视图移动到WINDOW之前调用 (void)didMoveToWindow


3,UIView的属性contentMode



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: