p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #d28f5a}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #4cbf57}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #ffffff; min-height: 21.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #ffffff}p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c2349b}p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px 'Heiti SC Light'; color: #ffffff}p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px 'Heiti SC Light'; color: #4cbf57}p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px 'Heiti SC Light'; color: #d28f5a}p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #e44448}span.s1 {font-variant-ligatures: no-common-ligatures}span.s2 {font: 18.0px 'Heiti SC Light'; font-variant-ligatures: no-common-ligatures}span.s3 {font-variant-ligatures: no-common-ligatures; color: #c2349b}span.s4 {font-variant-ligatures: no-common-ligatures; color: #ffffff}span.s5 {font: 18.0px Menlo; font-variant-ligatures: no-common-ligatures}span.s6 {font-variant-ligatures: no-common-ligatures; color: #8b84cf}span.s7 {font: 18.0px Menlo; font-variant-ligatures: no-common-ligatures; color: #8b84cf}span.s8 {font: 18.0px 'Heiti SC Light'; font-variant-ligatures: no-common-ligatures; color: #ffffff}span.s9 {font: 18.0px Menlo; font-variant-ligatures: no-common-ligatures; color: #4cbf57}span.s10 {font: 18.0px Monaco; font-variant-ligatures: no-common-ligatures}span.s11 {font: 18.0px Menlo; font-variant-ligatures: no-common-ligatures; color: #c2349b}span.s12 {font-variant-ligatures: no-common-ligatures; color: #e44448}
// AFHTTPSessionManager *manager;
// manager.securityPolicy;//安全策略,https协议时,若慢,或者失败可改为no试试
tabview的样式plain和grouped
UITableViewStylePlain
UITableViewStyleGrouped
@implementation XMGMeViewController
- (instancetype)init
{
return [self initWithStyle:UITableViewStyleGrouped];
}
pod --help
pod update --help
CocoaPods
- Podfile.lock文件
- 最后一次更新Pods时, 所有第三方框架的版本号
- 常用指令的区别
- pod install
- 会根据Podfile.lock文件中列举的版本号来安装第三方框架
- 如果一开始Podfile.lock文件不存在, 就会按照Podfile文件列举的版本号来安装第三方框架
- 安装框架之前, 默认会执行pod repo update指令
- pod update
- 将所有第三方框架更新到最新版本, 并且创建一个新的Podfile.lock文件
- 安装框架之前, 默认会执行pod repo update指令
- pod install --no-repo-update
- pod update --no-repo-update
- 安装框架之前, 不会执行pod repo update指令
//不更新本地仓库缓存,(本地仓库缓存着第三方框架最新版本号备用)不更新相当于离线加载安装
x.m定义一个全局变量
y.h用extern声明
其他文件只要import y.h就可以用在x.m中定义的全局变量
x,y没什么关系,不需要相互包涵,也不能这么做..
当然,名字一样比较好所以XXX.h XXX.m
很多系统的分隔线,或者滑动条都是一个UIImageVIew而已
解决tableView设置tableFooterView时contentSize不正确的问题
//在tableView设置时就会计算contentSize,tableFooterView在那一刻没有高度,(延迟设置高度),contentSize不会计算FooterView的高度了,改FooterView指向newView,重新计算contentSize,但不正确,contentSize底部多20高度,
tableView.tableFooterView = footerView;
// 重新刷新数据(会重新计算contentSize)
[tableView reloadData];
查找字符串的常见方法
// 如果range.location == 0, 说明是以searchString开头
// 如果range.location == NSNotFound或者range.length == 0, 说明没找到对应的字符串
//NSNotFound 无符号最大,拥有符号-1
static const NSInteger NSNotFound = NSIntegerMax;
- (NSRange)rangeOfString:(NSString *)searchString;
// 是否以str开头
- (BOOL)hasPrefix:(NSString *)str;
// 是否以str结尾
- (BOOL)hasSuffix:(NSString *)str;
// 是否包含了str(不管头部\中间\尾部)
- (BOOL)containsString:(NSString *)str;
计算总行数\总页数
总数 : 2476
每页显示的最大数量 : 35
总页数 : (2476 + 35 - 1) / 35
pagesCount = (总数 + 每页显示的最大数量 - 1) / 每页显示的最大数量
总数 : 1660
每一行显示的最大数量 : 30
总行数 : (1660 + 30 - 1) / 30
rowsCount = (总数 + 每行显示的最大数量 - 1) / 每行显示的最大数量
// self.tableView.tableFooterView
// self.tableView.tableFooterView
self.tableView.sectionFooterHeight=10;
self.tableView.sectionHeaderHeight=0;
//A 单行注释
/A/多行注释
/*A/文档注释,只有文档注释才有解释(敲方法时,alt+单机有解释)
frame.oringe,自己相对父控件而言.父控件坐标系
bounds.oringe,自己相对内容而言.内容坐标系(和contentoffsize一样)
alt+shfit +k
® alt+r
....
ÒÔÓ˝ÏÎÍÅ„´‰ˇÁ¨ˆØ∏”¯¯Â˜ı◊Dz¸Ç◊ı˜Â¯˘˘¿ÚÚ˝˝ÏΡÁ¨ˆØ∏”ÔÓÒÚ˜ı◊Dz¸¸ÅŒ„øøøµ≤≤∆˙˙©ƒç√∫µ≤≥÷÷≤∫√ç≈ΩΩåååœ∑®†¥øøππ““æ“•¶§∞¢£™¡§¶•ªº––≠†¥††®®®®
warning 睡眠
// [NSThread sleepForTimeInterval:2.0];
// 设置cell默认的文字(如果设置文字之前userInteractionEnabled=NO, 那么文字会自动变成浅灰色)
self.textLabel.text = @"清除缓存(正在计算缓存大小...)";
控制器的view的y值默认是20,,空出statusBar的高度?????
assign和weak的区别
- 本质区别
- 速度比较: __unsafe_unretained > __weak
@property (nonatomic, assign) XMGDog *dog; // XMGDog *__unsafe_unretained _dog;
__unsafe_unretained的特点:
1.不是强引用, 不能保住OC对象的命
2.如果引用的OC对象销毁了, 指针并不会被自动清空, 依然指向销毁的对象(很容易产生野指针错误: EXC_BAD_ACCESS)
@property (nonatomic, weak) XMGDog *dog; // XMGDog * _Nullable __weak _dog;
__weak的特点:
1.不是强引用, 不能保住OC对象的命
2.如果引用的OC对象销毁了, 指针会被自动清空(变为nil), 不再指向销毁的对象(永远不会产生野指针错误)
###
###在颜色的基础上追加透明度
[[UIColor whiteColor] colorWithAlphaComponent:0.2];
// 获取 名称为TestXib的 nib
UINib *nib = [UINib nibWithNibName:@"TestXib" bundle:nil];
// 获取TestXib 内部的所有子控件 以数组的方法返回
NSArray *nibArray = [nib instantiateWithOwner:self options:nil];
NSArray *bundleArr = [[NSBundle mainBundle] loadNibNamed:@"TestXib" owner:self options:nil];
####计算字体size相关思想
计算text的size要传入字体,要有串(两个参数font,和字的个数)
//这时,当它只是一行来算size
(三个参数font,和字的个数,和排版限制高或宽)
要算多行的,还要一个参数限制写入的串的最大宽度(高度限制为MAXFOALT就是不限制),或者限制最大高度(宽度不限),或者都限制
(一个参数font)
只是算高度(size.height),可以用font.lineHeigh属性
####
UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;
网友评论