UI界面 控件

1.UI中导航控制器和标签控制器能同时使用,但是只会有一个根视图控制器,开发中一般使用标签控制器管理导航控制器 再管理其他视图控制器的三级控制器结构

2.CG NS UI 的简写:
UI  User Interface
NS Nest Step
CG CoreGraphics

3.设置Label自动换行 numberOfLines = 0

4.设置TextFiled 只能输入数字 可以通过设置keyboard Type

5.程序中存在多个window时 通过windowLevel设置优先级

6.为了保证层级结构正确 在特定层插入子视图: insertSubview:atIndex
通过父视图索引修改子视图的位置 调到上层或者下层:bringSubviewToFront:
// 保证层级结构正确
[self.contentView insertSubview:_reWeiBoTextLabel aboveSubview:_reWeiBoBgImgView];

7.clipsToBounds 裁剪多余的图片部分 在layer层裁剪可以使用maskToBounds

8.viewWithTag 根据tag值找到某个视图

9. [ UIView setAnimationRepeatCount : NSNotFound ]; //设置动画 无限重复

10.通过layer图层给图片设置图框的属性
imgV. layer . borderColor = [[ UIColor whiteColor ] CGColor ];
imgV.layer.borderWidth=2;
imgV. layer . cornerRadius = 5 ;
imgV.layer.masksToBounds=YES;
移除layer图层的动画
UIView *view = [ self . view viewWithTag : 100 ]; // 取出设置了动画的视图
[view.layerremoveAllAnimations];//移除layer图层上面的动画

11.button的selected 相当于flag 

12.clearsOnBeginEditing 设置textField的清除样式

13.returnKeyType 设置return按钮的样式

14.通过 UIKeyboardWillShowNotification通知方法监听键盘的显示

15.通过签订 UITextFieldDelegate 协议监听textField的编辑状态

16.结束textField的编辑状态 隐藏键盘
//UITextField 结束编辑 , 编辑失去响应
  [textFieldresignFirstResponder];// -> 结束编辑的代理的方法 结束编辑后会调用21. 的方法 键盘将隐藏
textFeild 的结束编辑的方法
//1.> 隐藏键盘, 2.> textFeild 失去响应;
[self.chatTF endEditing:YES];


17.有些情况下需要拉伸图片 用以下方法解决
UIEdgeInsets inset = UIEdgeInsetsMake (imgHeight * .5 , imgWidth * .5 , imgHeight * .5 , imgWidth * .5 );//top lef bottom right
//(1) 拉伸图片之后 , 需要更新 img
img  = [img resizableImageWithCapInsets :inset  resizingMode : UIImageResizingModeStretch ];
//(2) 重新再设置这张图片
[imgView setImage :img];//这里拉伸图片

18.将图片转换为data形式 
UIImage *jpgImg = [UIImage imageNamed: @"face9.jpg" ];
NSData *data =  UIImageJPEGRepresentation(jpgImg,1);
data = UIImagePNGRepresentation(img);

19.  保存图片至本地相册的方法
// 将图片保存到相册
UIImage*img1 = [UIImageimageNamed:@"face9.jpg"];
UIImageWriteToSavedPhotosAlbum (img1, self , @selector (image:didFinishSavingWithError:contextInfo:), nil );
}
- (
void )image:( UIImage *)image didFinishSavingWithError:( NSError *)error contextInfo:( void *)contextInfo
{
NSLog ( @" 图片保存成功 !" );
}

20.button.showsTouchWhenHighligted = YES;//高亮状态下会有亮光

21.slider.continuous=NO;//slider设置只有在离开滑动条的最后时刻才触发滑动事件 而不是实时显示

22.播放gif动画:
gifImgView.animationImages= mArr;

23.tintColor是描述线条轮廓的一种颜色,该颜色默认具有传递性,默认状态下最底部的视图的tintcolor会一直往上面的视图传递

24.color在0-->1.0之内 随机数只能取整数

25. 移除target
[buttonremoveTarget:selfaction:@selector(buttonAction)forControlEvents:UIControlEventTouchUpInside];

26.根据图片颜色填充背景颜色
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"chat_bg_default.jpg"]];

27.将数组写出到plist文件
28.NSLog(@"%s",__FUNCTION__);//打印出当前调用的类及方法

29.设置模态弹出的方式:secondVC.modalTransitionStyle=UIModalTransitionStylePartialCurl;

30.refactor ->rename 将所有相关类中的同一对象全部重命名

31.#define IB(a,b,c)  可以传参数 可以宏定义一个方法

//根据rgb计算color的方法

#define kRGBColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]


32.有时候button无法设置靠左 使用坐标偏移方法
titleButton.contentEdgeInsets=UIEdgeInsetsMake(0,20,0,0);//边缘嵌入
titleButton.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;

33.根据输入的文字计算出总的文字尺寸
CGRectrect = [_contentboundingRectWithSize:CGSizeMake(200,999)options:NSStringDrawingUsesLineFragmentOriginattributes:tmpDiccontext:nil];

34.约束也是对象,可以通过修改约束的偏移值改变其位置
self.bottomConst.constant= rect.size.height;

35.重新布局 解决键盘弹出不正常的问题
//表示tabelView重新再布局 此方法会触发layoutSubviews
[self.tbViewlayoutIfNeeded];
自动布局子视图 填充数据(给子视图赋值) 修改父视图的frame时会自动调用 用于子视图的自动修改 
创建子视图的方法放在初始化方法里 确保只创建一次
layoutSubviews 里只放配置信息 防止重复创建
[selflayoutIfNeeded];//要判断是否有标记
[selfsetNeedsLayout];//标记要lagyoutSubviews
- (void)layoutSubviews 
36. 离屏绘制(Offscreen drawing): GPU一边在当前屏幕上进行绘制,而另一边在屏幕还没有处理图像信息之前通过CPU来生成图像信息的处理过程
当有涉及到动画的时候离屏绘制就会影响到性能

37. 在弹出的AlertView中显示一个输入框
[alertC addTextFieldWithConfigurationHandler : nil ];
NSInteger index = [alertC. textFields [ 0 ]. text integerValue ];



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值