UIView 的使用

直接上代码:


//    UIWindow *aWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;
//    self.window = aWindow ;
//    [aWindow release] ;

//  效果等同上述代码
//    当应用程序加载完成后,创建一个跟屏幕尺寸一样大的window对象
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.
//    修改window的背景颜色为指定颜色
    self.window.backgroundColor = [UIColor purpleColor];

//    makeKeyAndVisible方法可以让window对象成为主窗口对象,并且显示在屏幕上。
    [self.window makeKeyAndVisible];

    UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(30, 30, 100, 100)] ;
    [self.window addSubview:aView] ;
    [aView release] ;
    //UIView对象的背景颜色默认是透明的clearColor
    aView.backgroundColor = [UIColor cyanColor] ;

    UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 100, 100)] ;
    [aView addSubview:yellowView] ;
    [yellowView release] ;
    yellowView.backgroundColor = [UIColor yellowColor] ;

    UIView *blueView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 100, 100)] ;
    [yellowView addSubview:blueView] ;
    [blueView release] ;
    blueView.backgroundColor = [UIColor blueColor] ;

    NSLog( @"%@", NSStringFromCGRect(self.window.bounds) ) ;
    // iPhone 6 Plus 的分辨率 1920 * 1080 (414 * 736)
    //frame 中的大小其实是屏幕上物理像素点的个数,视图对象根据给定的物理像素点的个数以及起始位置、颜色信息来确定视图的范围和要显示的颜色。

    UIView *anView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 300, 300)];

    anView.backgroundColor = [UIColor redColor] ;
    [self.window addSubview:anView] ;
    [anView release] ;
    //视图创建并添加在父视图上时,打印 center 属性的值;
    NSLog( @"%@", NSStringFromCGPoint(anView.center) ) ;
    //通过修改视图的 center 属性来改变视图的起始点
//    anView.center = CGPointMake(200, 200) ;
    anView.center = self.window.center ;
    //frame 属性是指该视图在其父视图产生的坐标系中的起始点和大小;
//    anView.frame = CGRectMake(60, 80, 100, 120) ;
    //影响视图的 center 属性的原因有,视图的起始点发生改变和视图的大小发生改变;
    NSLog( @"%@", NSStringFromCGPoint(anView.center) ) ;

    UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)] ;
    bView.backgroundColor = [UIColor orangeColor] ;
    bView.center = anView.center ;
    [anView addSubview:bView] ;
    [bView release] ;
//
    anView.bounds = CGRectMake(20, -20, 300, 300) ;

    NSLog( @"%@", NSStringFromCGRect(anView.frame) ) ;
    //与 frame 不同的是 bounds 描述的是一个视图在自身坐标系中的起始点和大小,起始点默认与坐标系原点重合,为 (0,0),而 frame 描述的是视图在其父视图中的起始点和大小。
    NSLog( @"%@", NSStringFromCGRect(bView.bounds) ) ;
    //bounds 是可一个被修改的,修改 bounds 的起始点会导致当前视图产生的坐标系原点发生改变。
    //视图显示的位置是依赖于自身的 frame 的,修改 bounds 的起始点不会影响到 frame 的起始点,所以看到的视图并没有发生位移。
    //当我们把一个视图的 bounds 起始点改成(+,+)时,自身坐标系原点将向左上角移动对应大小。
    //当我们把一个视图的 bounds 起始点改成(-,-)时,自身坐标系原点将向右下角移动对应大小。
    //当我们把一个视图的 bounds 起始点改成(-, +)时,自身坐标系原点将向右移动对应大小。
    //当我们把一个视图的 bounds 起始点改成(+, -)时,自身坐标系原点将向左移动对应大小。

    UIView *greenView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 120, 120)] ;
    greenView.backgroundColor = [UIColor greenColor] ;
    //一个视图的子视图是按照添加时间以下标为序的,我们可以通过下面的方法改变视图层级。
//    [anView insertSubview:greenView atIndex:0] ;
    //将一个子视图插入到已经存在的子视图的上方。
//    [anView insertSubview:greenView aboveSubview:bView] ;
    //将一个子视图插入到已经存在的子视图的下方。
    [anView insertSubview:greenView belowSubview:bView] ;
    [greenView release] ;

    //管理视图层级
    //将一个视图移动到视图层级的最上层。
    [anView bringSubviewToFront:greenView] ;
    //将一个视图移动到视图层级的最下层。
    [anView sendSubviewToBack:greenView] ;
    //一个子视图调用 removeFromSuperview 方法,把自己从父视图中移除。
    [greenView removeFromSuperview] ;

    //一旦一个视图被添加显示以后,它的 superview 属性就可以获取到它的父视图。
    NSLog( @"%@", [anView superview] ) ;
    NSLog( @"%@", [bView superview] ) ;
    //视图是通过 subviews 数组来管理其子视图们的。
    NSLog( @"%@", [anView subviews] ) ;

    // hidden 是一个视图的显隐属性,默认为NO ,表示不隐藏,如果一个视图的 hidden 属性设置为 YES,其子视图也将被隐藏。
//    anView.hidden = YES ;
    // alpha 是一个视图的不透明度,范围在 0~1,默认为1,表示完全不透明。
    anView.alpha = 0.8 ;

    anView.tag = 100 ;

    UIView *getView = [self.window viewWithTag:100] ;
    NSLog( @"%@", getView ) ;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 13:57:48

UIView 的使用的相关文章

CALayer 与 UIView

1.关系 On iOS, every UIView is backed by a Core Animation CALayer. Simply speaking,UIView inherit from NSResponder,handle events from users, contains CALayer,which inherit from NSObject,mainly focus on rendering,animation etc. One thing UIViews provide

UIView /  UIView的布局

//! 一个视图可以有n个子视图,但是一个视图只能有一个父视图 struct CGRect {   CGPoint origin;   CGSize size; }; CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {   CGRect rect;   rect.origin.x = x; rect.origin.y = y;   rect.size.width = width; rect.size.height =

IOS - UIView添加点击事件

UIView通过手势(Gesture-UITapGestureRecognizer)添加点击事件, 类似于UIButton的效果. 示例: UIImageView *iKnowIcon = [CYResource loadImageView:@"free-question-once-more-i-know.png"]; iKnowIcon.top = questionIcon.top + scaleWidthWith320(200); iKnowIcon.centerX = self.

【iOS开发-触摸】移动的UIView例子

iOS触摸 方法: //开始接触 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - //在屏幕上移动 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - //触摸结束 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - //取消触摸 - (voi

Objective - C学习笔记:UIView的使用方法

1.1 - (void)layoutSubviews; * 当一个控件的frame发生改变的时候就会自动调用 * 一般在这里布局内部的子控件(设置子控件的frame) * 一定要调用super的layoutSubviews方法 1.2 - (void)didMoveToSuperview; * 当一个控件被添加到父控件中就会调用 1.3 - (void)willMoveToSuperview:(UIView *)newSuperview; * 当一个控件即将被添加到父控件中会调用 @interf

<iOS小技巧>UIview指定设置控件圆角

一.用法: 众所周知,设置控件的圆角使用layer.cornerRadius属性即可,但是这样设置成的结果是4个边角都是圆角类型. 利用班赛尔曲线画角: //利用班赛尔曲线画角 UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:(UIRectCornerBottomLeft |UIRectCornerBottomRight) cornerRadii:

iOS开发-UI (一)补充 UIWindow UIView UIlabel

之前忘了把这些整理出来,现在补充一下,应该放在前面学习的 知识点: 1.UI的初步认识 2.UIWindow 3.UIView 4.UIlabel ======================== UI的初步认识 1.什么是UI(*) UI即User Interface(用户界面)的简称.UI设计则是指对软 件的人机交互.操作逻辑.界面美观的整体设计.好的UI设 计不仅是让软件变得有个性有品味,还要让软件的操作变得 舒适.简单.自由.充分体现软件的定位和特点. 2.第一个UI工程 1)UI工程的

UIView的常见方法

- (void)addSubview:(UIView *)view; 添加一个子控件view - (void)removeFromSuperview; 将自己从父控件中移除 - (UIView *)viewWithTag:(NSInteger)tag; 根据一个tag标识找出对应的控件(一般都是子控件)

UIView的常见属性

@property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; 获得自己的所有子控件对象 @property(nonatomic) NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 @property(nonatomic) CGAffineTransform transform; 控件的形变属性

UIView的分类--iOS

#import <UIKit/UIKit.h> @interface UIView (PJXExtension) @property(assign,nonatomic) CGFloat x; //x坐标 @property(assign,nonatomic) CGFloat y; //y坐标 @property(assign,nonatomic) CGFloat width; //宽度 @property(assign,nonatomic) CGFloat height; //高度 @prop