UI框架笔记

UIlable —— 在屏幕上显示文字

lable.Text = @“”(赋值)
lable.frame = CGRectMake(左上角坐标, 巨型的长, 宽, 高) (显示的位置) (sect: 巨型)
lable.backgroundColor = [UIColor whiteColor] (巨型背景颜色)(clearColor没有颜色)默认是什么颜色?
lable.testAlignment = NSTEXTALignmentRight(or Center) 在矩形中的对齐方式(默认做左对齐) (Alignment: 按直线排列)
lable.numberOfLines = 2 (文字行数, 默认为一, 太长会是省略号, 行数如果超过不变, 如果是0, 对文字自动计算行数, 并显示)
self.view.backgroundColor = [] (背景色)
lable.test,color = [UIColor blackColor] (文字颜色)
[self.view addSubview: lable] (加到视图上)
lable.font = [UIFont systemFontOfSize: 12] (设置文字大小systemFont:系统默认字体) (font:字体)
lable.shadowColor = [] (阴影颜色)
Lable.shadowOffSet = CGsizeMake(10, 10) (阴影偏移)(横向偏移量和纵向偏移量)

UIButton(创建方法为类方法)

UIButton but = [UIButton buttonWithType: UIButtonTypeRoundRect] (类名加方法名创建)
but.frame() (按钮位置)
[but setTitle: @“按钮1” forState: UIControlStateNormal] (普通状态显示按钮1, 按住时显示按钮按下)
[but setTiyle: @“按钮按下” forState: UICOntrolStateHIghLighted]
[self.view addSubView: but] (添加到视图上)
but.backgroundColor = [UIColor grayColor]
[but setTitleColor: [UIColor reaColor] forState: UIControlStateNormal] (设置文字颜色, 按下状态不设置时, 和按钮1状态相同)
[but setTinColor: [UIColor whiteColor]] (设置风格颜色, 会影响文字的颜色, 如果已经设制setTitleColor, 则它不起作用)
but.titleLable.font = [UIFont systemFontOfSize: 12] (设置按钮文字字体大小)
图片按钮
UIButton
btnImage = [UIButton buttonWithType: UIButtonTypeCustom]
UIImage* icon01 = [UIImage imageNamed: @“图片名加扩展名”] (创建图片,图片要拖过来, 1.jpg)
[btnImage setImage: icon0 forState: UICOntrolStateNormal] (创建普通状态下的btnimage的图片)

UIButton事件

向按钮添加事件;
(已创建一个Unbutton* btn)
参数一:实现此函数的对象
参数2: @selector(pressBut)当按钮满足参数3事件时,调用函数pressBut(方法)
参数3:UIControlEventTouchUOutside:当手指离开鼠标时,鼠标所指位置在OUtside(按钮外)down(触碰时)
[btn addTarget:self action: @selector(pressBtn)forControlEvents:UIControlEventTouchOutside] (添加事件)
多个按钮可用同一事件,为了区别添加tag, but1.tag = 101, but2.tag = 202, 在@selector方法中用if else区别;

UIImageView

序列图
图片显示在屏幕上的大小由载体决定,载体可能会对图片拉升它的frame可以写image.size.width和image。size。hight
UIImage的载体
内容模式
imageview.contentMode = UIViewContentModeCenter           (设置内容模式可以使图片保持原样)
imageView.contentMode = UIViewContentModeScaleToFill       (默认模式:拉伸充满整个载体,改变比例)
                                                                   ScaleAspectFill    (不改变比例拉伸到大的一边,会超出)
                                                                   ScaleAspectFit    (不改变比例拉伸充满小的一边没)
动画
#if 0
#end if注释
添加图片到imageview,for循环存入ImageArray数组
UIImage* image = [[UIImage imageNamed: [NSString stringWithFormat: @“%d.jpg”, i]]
[imageArray addObject: image]
放到动画数组
imageView.animationImages = imageArray
设置图片播放周期(秒)
ImageView.animationDuration = 2                        (animation: 动画片制作   duiation: 持续时间)

执行次数
imageView.animatiionRepatCount = 10
开始播放指令
[imageView startAnimating]

UITextView (可滚动文本)
UITextView* textView = [UITextView alloc] init]
UITextEditable = YES (可编辑)
UITextUserInteractionEnable (可滚动)
(回收可在touchesbegan协议中回收键盘)

UIView
改变图片位置
UIview是UILable,UIButton等屏幕上能看到的对象的父类
UIView* view = [[UIView alloc] init]
也要添加到视图上叫子视图
视图的隐藏
view.hidden = YES (隐藏) (默认值为NO)
视图的透明度
view.alpha = 1 (b不透明) (= 0 透明)(为1到0之间到值)
view.opaque = YES
【view removeFromSuperView】 (将自己从父亲视图删除)
视图的遮挡关系 后添加的覆盖前面添加的
将某一视图调整到最前面
[self.view bringSubviewToFront: view1] (把view1调整到最前面,view1完全显示)
将某一视图调整到最后面
[self.view sendSubviewToBack: view1] (把view1调整到最后面)
self.view.subviews[2] (self.view管理的所有子视图的数组)
view.superview (view的父视图)

UIWIndow 窗口对象即屏幕(本来自己有, 但是没特征, 就是屏幕, 不显示, 在应用开发中,将某些界面覆盖在所有界面的最上层,,这个时候可以手工创建一个新的UIWindow,UIWindow一旦创立它就会被添加到这个界面上, 整个程序中,只有一个window, 所有VIew都有Window属性, window只有一个, 所有view的window都指向self的weindow)
创建是UIDelegant的属性
self.WIindow = [UIWindow alloc] initWithFrame: [UIScreen main screen].bounds] (UIScreen mainScreen].bounds) 表示获取主屏幕的信息值 (UIScreen 屏幕类)
需要创建视图控制器
self.window.rootViewController = [UIViewController alloc] init]
使window有效并显示在屏幕上
【self.window makeKeyAndVisible】

UIViewController (==========================两个viewController实现的先后顺序为 为什么要重写????)
创立视图窗口
self.window =
创建视图控制器 (视图控制器用于管理界面和处理界面的逻辑类对象)
self.window.rootViewController =
创建视图控制器对象
ViewController *VcRoot =
赋值
Self.window.rootViewController = VcRoot
[self.window makeKeyAndVisable]

· -(void)viewWillAppear: (BOOL)animated (视图显示前, BOOL表示是否有动画切换)
-(void)viewWillDisappear: (BOOL)animated (视图即将消失, BOOL表示是否有动画)
-(void)viewDidAppear: (BOOL)animated (视图已显示)
-(void)viewDidDisappear: (BOOL)animated (视图已消失)

(新建一个视图, 实现视图间的切换用-(void)touchesBegan)
显示一个新的视图控制器到屏幕上
(P1: 新的控制器对象,P2: 是否有动画效果, P3: 切换结束后功能调用, 不用时传nil)
[self presentViewController: vc animated: YES completion: nil]
(当前视图控制器消失)
[self dismissViewControllerAnimated: YES completion: nil]

UITextFiled(文本输入框:是成员变量,只能输入单行文本, 继承UIControl, UIControl、继承UIview)
为什么是成员变量???
创建
self.textFiled = [[UITextFiled alloc] init]
Self.textFiled.font = [UIFont systemFontOFSize: 12]
边框风格:
self.textFiled.borderStyle = UITextBorderStyleRounderRect (圆角风格)
Line (线框风格)
Bezel (bezel线框)
None (无边框风格)

  虚拟键盘风格:
  self.textFiled.keyboardType = UIKeyboardTypeNumberPad                  (纯数字风格)
                                                                   Default                      (默认风格)
                                                                   NamePhonePad            (字母和数字组合风格)

  提示文字
  self.textFiled.placeholder = @““              (当文本框无文字时显示此条信息 : 浅灰色)
  是否作为密码输入
  self.textFiled.secureTextEntry = YES             (圆点, NO:正常显示输入文字)

 键盘收回:
 -(void)touchesBegan。。。。。
          [self.textfiled resignFirstRespondor];           (不在作为第一消息响应者, 即键盘收回)
  
 加入到view
 [self.view addSubVIew: self.textFiled]

 执行协议语句
 self.testfile.delegant = self

 协议:
 testFIleDIdBeginEditing:  (开始编辑时, 可在里面输出什么)
 testFileDidEndingEditing: (结束编辑时)
 (BOOL)testFileShouldBeginEditing              (是否可以开始)

(BOOL)TextFileShouldEndEditing (是否可以结束)

UIScrollView (滚动视图:对视图内容可滚动查看, 由view构成, 不是image构成, image不能决定自几位置)

UIScrollView* sv = [[UIScollView alloc] init]
Sv.frame = CGRectMake()                        (只是一张图片的大小)
sv.pagingEnabled = YES          (是否按照整页滚动) (一张显示,No可以是两张拼一起)
sv.scorllEnabled = YES            (是否开启滚动效果)
sv.contentSize = CGRectMake(320*5, 576)           (设置画布大小, *5看是几张图片)
sv.bounces = YES               (是否开启边缘弹动效果) (是否可以往下拉,显示背景)
sv.alwaysBounceHorziontal = YES               (开启横向弹动)     (horziontal:横向, vertial:纵向)
sv.alwaysBounceVertial = YES                     (开启纵向弹动)
sv.showsHorizontalScollIndicator = YES         (显示横向滚动条)(滚动条画布大小大于屏幕大小时)
sv.showsVertialScrollIndictor = Yes                 (显示纵向滚动条)
Sv.userInteractonEnabled = NO                         (是否可以点击屏幕实现,默认NO )
将图片添加到视图:
for(int I= 1; I<= 5; I++) {
    NSString* strName = [NSString stringWithFormat: @“%d.jpg”, I];
    UIImage* image = [UIimage imageNamed: strName];
   UIImageView* view = [[UIImageView alloc] initWithImage: image];
   view.frame = CGRectMake()
   [sv addSubView: view]

}
[self.view addSubView: sv]
点击跳转:
-(void)touchesBegan
scollView。contentOffSet = CGPointMake()

协议:
-(void)scrollViewDidScroll: (scrollVIew.contentOffSet.y:表示画布关于y轴的偏移量, 用于监控视图的位置)
-(void)scollViewDidEndDragging (滚动视图结束拖动时)
-(void)scollViewWillBeginDragging (即将开始拖动时)
-(void)scollViewWillBeginDecelerating (即将减速) (will或者did begin或者did)(结束瞬间速度最大wilbegindecelerate)

================array objectatindex: section ???

UItableView (表格, 两个代理, 是成员变量一个UITableView, 一个数组)
UITableView声明了一个NSIndexPath类, 有section和row两个属性, 分别是组和组中的第几行
协议 <UITableViewDelegate, UITableViewDataSource>
数据视图用来显示大量相同格式的信息的视图:电话通讯类
tableView = 【UITableView alloc】 initwithFrame: self.view.bounds style:
数据视图: 位置
风格UITableViewStyleplain : (普通风格)
GroupPed (分组风格 中间有空)
tableView.tableHeadView = nil; [头部视图]
tableView.tableFootView = nil; (尾部视图)
[tableView reloadData] (数据源变化时更新数据视图,重新加载数据)
必须要实现的协议:
-(NSInteger) tableView: (每组元素个数) (p1:数据视图对象本身, p2: 那一组需要的行数)
return:元素个数
-(NSInterger)numberOfSectionsInTableView: (数据视图组数)
return:组数
- (UITableViewCell*)tableView (创建单元格的函数)
NSString* strID = @“ID”;
UITableViewCell* cell = [tableView dequeReusableCellWithIndentifier: strID] (尝试获得标示为strID的tableView可复用的单元格, 得不到时返回为空, cell有风格和标示)
If(cell == nil) (尝试失败时, 创建一个)
「。 cell = [UITAbleViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIndentifier:strID】
cell.textTable.text =
Cell.detailTextLable.text = @“123” (子标题)
Return cell

  协议函数:
        -(CGFioat)tableView:。。。title                                                                (获取单元格的高度)
        -(NSString*) tableVIew  。。。forHeader                          (在单元格头部写标题)
                 return;@“头部标题”
        -(NSString*) tableView    。。。forFooter                      (在尾部写标题)
        -(CGFloat)tableView 。。。hightForheader              (头部标题高度)
        -(CGFloat)tableView。。。highForFooter                    (尾部标题高度)

 高级协议
      导航按钮
      添加成员变量:UIBarButtonItem* -btnEdit                       (导航按钮)
                           UIBarButtonItem* —btnFinish
                           UIBarButtonItem* —btnDelete
                           BOOL —isEdit                                         (设置编辑状态)
      做导航控制器
         UINavigationController    *nav = [[UINavigationController alloc] initWithViewController: [viewController alloc] init]]
      UIBarButtonItem :  Title:       style:        Target:         action: @selector()
      Self.navigationTtem.rightBarButtonItem =                               
                                                                                                                                                                                      
      单元格显示状态UITableViewCell默认为红色(delete)
      -(UITableViewCellEditingStyle)tableView:          [tableView setEditing: YES]    (会在单元格上显示删除的减号)
      「
                                        return UITableViewCellEditingStyleDelete        (默认为删除Insert插入状态, none虚空状态, UITableViewDelete|UITableViewInsert多选状态)
    -(void)tableView:     。。。。commit         (滑到单元格	w)
      -(void)tableView。。。。Select             (选中单元格)

分栏控制器:(平行, 最多五个一个界面)

1.一个简单的程序.............................................................................................................................1 1.1.源码分析................................................................................................................................2 2.UI消息机制...................................................................................................................................2 3.Chrome控件树...............................................................................................................................3 4.Chrome消息分发机制...................................................................................................................4 5.基本控件........................................................................................................................................5 5.1.源码解析................................................................................................................................7 5.2.Paint&&Layout........................................................................................................................8 5.3.事件处理................................................................................................................................8 6.原生控件........................................................................................................................................8 7.国际化..........................................................................................................................................10 7.1.Locale 项目............................................................................................................................10 7.2.GRIT 软件.............................................................................................................................11 7.3.Grd文件...............................................................................................................................12 7.4.Grd文件的编译...................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值