UIView属性
2016-01-02 17:03
330 查看
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"程序已经完成加载"); //iOS坐标系: x轴, 越往右, 越大; y轴, 越往下, 越大 //iOS应用的能到看到的视图, 都是矩形 //决定一个矩形视图在坐标系的位置, 有四个值(x, y , width, height) //和数据相关的 //1.CGPoint, 存一个点的位置 CGPoint point = {50, 100}; NSLog(@"%.2lf, %.2lf",point.x, point.y); CGPoint point1 = CGPointMake(50, 100); NSLog(@"%@", NSStringFromCGPoint(point1)); //2.CGSize, 结构体, 存大小 CGSize size = CGSizeMake(150, 200); NSLog(@"%@", NSStringFromCGSize(size)); //3.CGRect, 结构体, 存矩形的位置和大小 CGRect rect = CGRectMake(50, 100, 150, 200); NSLog(@"%@",NSStringFromCGRect(rect)); //打印x NSLog(@"%.2lf", rect.origin.x); //[[UIScreen mainScreen]: 获取手机的主屏幕 //[[UIScreen mainScreen] bounds]: 获取主屏幕的大小 NSLog(@"%@", NSStringFromCGRect([[UIScreen mainScreen] bounds])); //手机屏幕(pt: point, 点) //iPhone 1/3G/3Gs/4/4s: 320 * 480 //iPhone 5/5s/5c : 320 * 568 //iPhone 6/6s : 375 * 667 //iPhone 6 Plus/6s Plus : 414 * 736 //普通屛幕(1, 3G, 3Gs): 1pt = 1px //retina(视网膜)屏幕(4, 4s, 5, 5s, 5c, 6, 6s): 1pt = 2px //高清屏(6 Plus, 6s Plus): 1pt = 3px //UIWindow窗口类, 可以看到的都是试图, iOS应用, 至少有一个窗口, 所有的控件必须放到窗口上, 才能显示出来 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//self.window表示属性 // Override point for customization after application launch. //UIColor , 颜色类, UIColor *color1 = [UIColor redColor]; UIColor *color2 = [UIColor colorWithRed:255 / 255 green:120 / 255. blue:3 / 255. alpha:1];//alpha阿尔法值, 0为完全透明, 1为完全 // [UIColor brownColor] //随机颜色 UIColor *randomColor = [UIColor colorWithRed:(arc4random() % 256) / 255. green:(arc4random() % 256) / 255. blue:(arc4random() % 256) / 255. alpha:1]; self.window.backgroundColor = randomColor; //成为主窗口并显示 [self.window makeKeyAndVisible]; //UIView, 视图类, 继承于UIResponser /* UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; //默认颜色是clear,透明的 aView.backgroundColor = [UIColor yellowColor]; [self.window addSubview:aView]; UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)]; UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(375 - 120, 20, 100, 100)]; UIView *cView = [[UIView alloc] initWithFrame:CGRectMake(20, 667 - 120, 100, 100)]; UIView *dView = [[UIView alloc] initWithFrame:CGRectMake(375 - 120, 667 - 120, 100, 100)]; UIView *eView = [[UIView alloc] initWithFrame:CGRectMake(375 / 2 - 50, 667 / 2 - 50, 100, 100)]; aView.backgroundColor = [UIColor yellowColor]; [self.window addSubview:aView]; bView.backgroundColor = [UIColor yellowColor]; [self.window addSubview:bView]; cView.backgroundColor = [UIColor yellowColor]; [self.window addSubview:cView]; dView.backgroundColor = [UIColor yellowColor]; [self.window addSubview:dView]; eView.backgroundColor = [UIColor yellowColor]; eView.layer.cornerRadius = 30; [self.window addSubview:eView]; //视图创建的过程 //1.开辟内存空间 //2.设置视图的属性(比如背景颜色) //3.添加到父视图 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 120, 100, 100)]; //背景色, 默认为clearColor view.backgroundColor = [UIColor yellowColor]; //是否隐藏, 默认为NO view.hidden = NO; //不透明度, 默认为1 view.alpha = 0.5; [self.window addSubview:view]; //视图的层级关系(和继承差不多) //1.一个视图, 只能有一个父视图, 可以有多个子视图 //2.先添加, 显示在下面; 后添加, 显示在上面 //3.一个视图的frame, 都是基于父视图的坐标系 //4.子视图超出父视图的部分, 是可以显示的, 不能触摸(如果, 不想显示, 可以切掉 clipsToBounds) UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; aView.backgroundColor = [UIColor redColor]; [self.window addSubview:aView]; UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 1000, 40)]; //超出父视图的部分, 是否切掉 aView.clipsToBounds = YES; bView.backgroundColor = [UIColor greenColor]; //视图越界, 能看到. 但是不能触摸 [self.window addSubview:bView]; [aView addSubview:bView];//基于父视图的坐标系 //子视图数组 NSLog(@"%@", self.window.subviews); NSLog(@"%@", aView.subviews); //父视图 NSLog(@"%@", bView.superview); NSLog(@"%@", aView.superview); UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; aView.backgroundColor = [UIColor redColor]; [self.window addSubview:aView]; UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(120, 120, 100, 100)]; bView.backgroundColor = [UIColor greenColor]; [self.window addSubview:bView]; UIView *cView = [[UIView alloc] initWithFrame:CGRectMake(140, 140, 100, 100)]; cView.backgroundColor = [UIColor blueColor]; [self.window addSubview:cView]; UIView *dView = [[UIView alloc] initWithFrame:CGRectMake(130, 130, 100, 100)]; dView.backgroundColor = [UIColor yellowColor]; //在指定位置插入视图, 位置只算子视图, 从0开始 // [self.window insertSubview:0 atIndex:2]; //在某个视图的上面插入一个视图 // [self.window insertSubview:dView aboveSubview:bView]; //在某个视图下面插入一个视图 // [self.window insertSubview:dView belowSubview:cView]; //调整子视图的层次 //最前面 // [self.window bringSubviewToFront:cView]; //最后面 // [self.window sendSubviewToBack:cView]; //交换 [self.window exchangeSubviewAtIndex:2 withSubviewAtIndex:3]; //UIView的属性 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; //背景颜色 view.backgroundColor = [UIColor yellowColor]; //是否隐藏 view.hidden = NO; //不透明度 view.alpha = 1; //父视图 // view. superview; //子视图数组 // view. subviews //超出父视图的部分是否切掉 view.clipsToBounds = YES; [self.window addSubview:view]; //view.frame 假如想单独修改, 那么不能单独修改, 需要整体修改 //1 view.frame = CGRectMake(100, 200, 100, 100); //2 CGRect rect1 = view.frame; rect1.origin.y = 200; view.frame = rect1; NSLog(@"%@", NSStringFromCGRect(view.frame)); //修改view.center, 他也是一个整体 //1 // view.center = CGPointMake(375 / 2, 667 / 2); //2, 中心点, 基于父视图坐标系(相对于父类) view.center = self.window.center; NSLog(@"%@", NSStringFromCGPoint(view.center)); //view.bounds 边界, 基于自身坐标系, 视图在自身的坐标系中的位置和大小 NSLog(@"%@", NSStringFromCGRect(view.bounds)); view.bounds = CGRectMake(0, 0, 160, 100);//bound只会影响子视图的位置 NSLog(@"%@", NSStringFromCGRect(view.bounds)); //注意: bounds(0, 0, 宽, 高) 和 center(只有x, y 值)是相互不影响的 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; view.backgroundColor = [UIColor yellowColor]; [self.window addSubview:view]; view.bounds = CGRectMake(100, 100, 200, 200); UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; aView.backgroundColor = [UIColor blueColor]; [view addSubview:aView]; */
相关文章推荐
- POJ-3061 Subsequence(尺取法)
- 二分+线段树 Codeforces609F Frogs and mosquitoes
- Java基础之break和continue
- UITableView 滚动流程性优化
- ArrayBlockingQueue 和LinkedBlockingQueue
- BlockingQueue
- LeetCode 95:Unique Binary Search Trees II
- Android UI标题栏模板设计
- sendAsynchronousRequest 过时
- incredibuild教程
- (java多线程与并发)java并发库中的阻塞队列--BlockingQueue
- Leetcode: Range Sum Query - Mutable && Summary: Segment Tree
- Deep learning From Image to Sequence
- query的参数解析
- codeforces 375D . Tree and Queries 启发式合并 || dfs序+莫队
- Linguistic Data Consortium (LDC)
- 枚举enum用法总结
- easyui datagrid 动态生成列
- Break与Continue的区别
- 设置UICollectionViewCell的尺寸/间距等