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 ( @" 图片保存成功 !" );
}
- ( 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
];