IOS开发之UIView的基本使用
一.视图
1. iphone手机上的窗口就是UIWindow类的一个实例(1个手机应用只有一个UIWindow)。
2.UIView类用于实现视图。
UIView提供了方法来添加和删除子视图。一个视图可以有多个子视图,这些子视图按照顺序放在父窗口下:
-(void) addSubview:(UIView *)view;//添加子视图
-(void) removeFromSuperview;//从父窗口上删除子视图(自己)
-(void) insertSubview:(UIView *)view atIndex:(int)index;//按照顺序添加子视图
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) exchangeSubviewAtIndex:(int) indexwithSubviewAtIndex:(int)otherIndex;
3.视图结构的相关函数
CGPointMake(x,y) CGPoint point=CGPointMake(50.0,50.0);
声明位置的信息 point.x=50.0;
point.y=50.0;
CGSizeMake(width,height)
声明大小的信息 CGSize size=CGSizeMake(200.0,100.0);
size.width=200.0;
size.height=200.0;
CGRectMake(x,y,width,height) CGRect rect=CGRectMake(50.0,50.0,200.0,200.0)
声明位置和大小信息 rect.origin.x=50.0;
rect.size.width=200.0;
4.Frame和Bound
视图的大小和位置用两种方式表示。一种方式是Frame(框架),即以其父视图为起点,得出它自己的信息。另一种方式是Bound(界限),即以它自己为起点,得到其位置。
其实,系统内部存放的是图的中心点位置和大小信息。Frame方式的信息是按照中心点位置计算出来的。当我们创建一个视图的时,我们往往采用Frame方式。当我们旋转一个视图或者处理视图事件时,我们大多采用Bound方式。
曾经被面试官问过这个问题,当时概念很模糊,被面试官嗤笑了,呵呵!Frame和Bound的区别?这下清楚了吧。
IOS开发之UIView的基本使用的更多相关文章
- ios开发之UIView和UIViewController
UIView 表示屏幕上的一块矩形区域,负责渲染区域的内容,并且响应该区域内发生的触摸事件.它在 iOS App 中占有绝对重要的地位,因为 iOS 中几乎所有可视化控件都是 UIView 的子类. ...
- ios开发之UIView的frame、bounds跟center属性的区别(附图)
博文暂时想到什么写什么,不顺理成章,不顺章成篇. 先看几个概念 坐标点Poit:向右侧为X轴正方向的值x,原点下侧为Y轴正方向的值y 大小Size:由宽度width和高度height构成,表示一个矩形 ...
- IOS开发之UIView总结
如果想调用某个类的某个方法可以写成这样,这个方法来自NSObject类 performSelector: performSelector:withObject: performSelector:wit ...
- iOS开发之UIView的常见属性
1.所有控件都继承自UIView,UIView的常见属性如下: @property(nonatomic,readonly) UIView *superview;获得自己的父控件对象 @property ...
- IOS开发之UIView总结1
太长了,请看 http://blog.csdn.net/xdrt81y/article/details/9128695 performSelector: performSelector:withObj ...
- iOS开发之UIView
在iPhone里你能看到的.摸到的,都是UIView. 视图坐标系统: UIKit中的坐标都是基于这样的坐标系统:以左上角为坐标的原点,原点向下和向右为坐标轴方向. 坐标值由浮点数来表示,内容的布局和 ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- IOS开发之ZBarReaderView的使用
IOS开发之ZBarReaderView的使用 HOMEABOUTGUESTBOOKCATEGORIESTAGSLINKSSUBSCRIBE 当开发IOS程序中需要用到二维码识别功能的时候,zbar这 ...
随机推荐
- .net 弹窗方式
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请输入 ...
- 2080夹角有多大II
寻人启事:2014级新生看过来! 夹角有多大II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- listview添加onItemClickListener
MainActivity.java package com.wyl.listview04; import java.util.ArrayList; import java.util.HashMap; ...
- USACO Palindromic Squares 【STL__string_的应用】
这里有个讲解 string 用法非常详细的博文:https://www.byvoid.com/zhs/blog/cpp-string 题目意思很简单啦,就是找回文 使用string可以高速A过 Sou ...
- 为什么要用BASE64
BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输.更具体地说,BASE64算法主要用于转换二进 制数据为ASCII字符串格式.Java语言提供了一个非常好的 ...
- php 原生或curl获取 http headers
有一个函数: array get_headers ( string $url [, int $format = 0 ] ) Parameters url The target URL. format ...
- 设计模式(九)外观模式Facade(结构型)
设计模式(九)外观模式Facade(结构型) 1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性. ...
- cocos2dx进阶学习之CCEGLView
继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...
- java生产者消费者问题代码分析
作者要的是一个生产者生成,接着必须有一个消费者消费,那这不是需要单线程吗?或者使用1个大小的阻塞队列.所以只谈论问题本身,不谈论好不好. 具体代码: import java.util.concurre ...
- NDK如何调试系统核心动态库(无系统源码的情况)
版权归薛定諤耗子所有,转载请表明出处. 1,有源码,需要导入符号表 2,没有源码,如何调试 1)运行ndk-gdb:../../ndk-gdb --verbose --launch=com.examp ...