scrollView里lastObject不一定是你加的,可能会存在其他非手动添加的系统默认的子控件
edit all in scope或cmd+F 批量查找重命名
数组中包含元素
BOOL b=[@[@1,@2,@3] containsObject:@1];
得到数据的大小3.5M
[NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile];```
在Info.plist里面bundle Name 直接可以改App的名字,改项目名文件名太麻烦了
[str lowercaseString]全部转换为小写
[str uppercaseString]转换为大写
注意!当一个属性的setter和getter都是自定义时不会生成实例变量
向上向下翻页
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
参数UIViewAnimationTransitionCurlUp代表向上翻页,如果向下的话UIViewAnimationTransitionCurlDown.
forView那把当前的视图传进去。
长按更换背景图片一定要打开用户交互!!!
selectedCell.imageView.userInteractionEnabled=YES;
长按手势默认调两下方法,加上
if (gr.state==UIGestureRecognizerStateBegan)
只要把断点设在 property 的声明上,就可以断到这个 property 所有的改变
tabBar选中后有背景,很多软件用到
self.tabBar.selectionIndicatorImage=[UIImage imageNamed:@"tabbar_selected_back.png"];
是否是ipad
Bool isIpad= [[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad;
是否IOS8以上
bool isIOS8 =
[[UIDevice currentDevice].systemVersion doubleValue] >=8.0;
自定义代码块存在这里,换电脑拷走即可
/Users/apple/library/developer/xcode/userdata/codeSnippet
设置状态栏(电池所在的20个点)的颜色
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;//浅色
return UIStatusBarStyleLightDefault;//深色
}
collectionView和tableView没有数据的原因
1.很可能是因为dataSource没拉线
2.Model数组count为0
3.明明用动态cell却register了
注意xib自定义cell的加载方式
cell =[[[NSBundle mainBundle]loadNibNamed:@"EVTableViewCell" owner:self options:nil]lastObject];
自定义slider
[self.mySilder setMaximumTrackImage:[UIImage imageNamed:@"playing_volumn_slide_bg"] forState:normal];
[self.mySilder setMinimumTrackImage:[UIImage imageNamed:@"playing_volumn_slide_foreground"]forState:normal];
[self.mySilder setThumbImage:[UIImage imageNamed:@"playing_volumn_slide_sound_icon"] forState:normal];
直接拖文件夹在xcode中会访问不到,此时文件夹是蓝色的,要记得选择new group,变成黄色的
self.view就是tableview
但self.view 不是collectionview.是collectionview.superview
也等同于在autoresizing里把红线点暗
-(void)awakeFromNib{
从xib中唤醒出来时
view.autoresizingMask=UIViewAutoresizingNone;
}
keyValue相等的字典
NSDictionary* dict=NSDictionaryOfVariableBindings("b1","b2","b3");
dict = @{"b1":"b1","b2":"b2","b3":"b3"}
数字加@就转为对象类型
同一button点击切换状态
//利用取反
sender.selected=!sender.selected
//获取button的title=[sender titleForState:normal/selected]
title=[sender titleForState:normal/selected]
只要是矩阵类型的都可以
for row=i/n
col=i%n得到对应坐标
父视图的TintColor设置全局颜色,第一个检查器globalTint
tint对一类型做统一设置
naviBar是全局的
大量图片是不要用image imagenamed
应用[NSBundle mainBundle]file....
uppercaseString全大写,lowercaseString全小写
关闭键盘啊!
touchesBegin{
[self.view endEditing:Yes]
}
textField选didEndOnExit
要注意新建项目时的bundle identifier 软件的唯一标识,因为不识别中文,所以都变成----当两个软件标识一致就会卸载前一个的
frame永远是矩形的哦!
RGB一样的就是灰色啦
extension和category
可以说extension是私有的category,只有h文件的
NSStringFrom把xxx变成字符串
客户端和服务器
http是短链接,返回数据就断开
socket是长连接,可以不停的往返发送数据
modal控制器的切换是可逆的,Controller未被销毁
直接切换window的rootVC是不可逆的,没有强指针指向就被销毁了
不要重复造轮子,知道怎么用轮子
练习使用你熟悉的一切来解释该模型的特性
self.topLayoutGuide.length:就是导航栏的高度,那个44
把文件点开一下,将storyBoard和class关联才自动补全
CMD+Alt+A:add file
CMD+Alt+Shift新建playground
Alt点选文件,拆分你想要的视图
segmentControl点击事件里:sender.selectedSegmentIndex
tableView和collectionView中CRUD一定要先修改数据模型再reloadData,其实自己都不用写delete,insert的
tableView.visibleCells很好用
scrollView里lastObject不一定是你想要的,可能存在其他非手动添加系统默认的子控件
NSOptions这样的枚举,就是多维选择的啦 <<左位移什么的,按位或运算符
一个像素点用4个整数来存(0-255)
VFL:Visual Format Language 可视的格式语言写布局约束