1.UITableviewCell点击事件不触发,在didSelectRowAtIndexPath中添加[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];
2.取消Cell的点击效果[Cell setSelectionStyle:UITableViewCellSelectionStyleNone];
3.修改navigaItem上的字体颜色self.navigationController.navigationBar.tintColor = [你的颜色];
4.网络获取图片宽和高改变查看是否加了约束
5.tableView不滑动self.tableView.userInteractionEnabled = NO;
6.tableViewCell点击以后cell改变高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (arr.count > 0) {
if (indexPath.row == [[arr lastObject] integerValue]) {
if (self.Selected) {
return 150;
} else {
return 90;
}
} else {
return 90;
}
} else {
return 90;
}
}
//编辑样式
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{ return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{ NSUInteger row = [indexPath row];
id deleteObject = [xhcpRobot.messagePage.messagePageArr objectAtIndex:row];
[removeList removeObject:deleteObject];
}
#pragma mark - 点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (arr.count > 0) {
if (indexPath.row == [[arr lastObject] integerValue]) {
self.Selected = !self.Selected;
} else {
self.Selected = YES;
[arr removeAllObjects];
[arr addObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
}
} else {
[arr addObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
}
[self.type1tableView reloadData];
NSLog(@"msgId ===%@",msg.msgId);
[[HttpRequestService shareHttpRequestService] sendMessageDetailRequest:msg.msgId success:^(id obj) {
NSLog(@"msg.msgId ===%@",msg.msgId);
}];
NSUInteger row = [indexPath row];
id addObject = [xhcpRobot.messagePage.messagePageArr objectAtIndex:row];
[removeList addObject:addObject];
}
7.关于NavigationItem.rightBarButtonItem设置
UIButton*rightButton = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,30,30)];
[rightButtonsetImage:[UIImageimageNamed:@"search.png"]forState:UIControlStateNormal];
[rightButtonaddTarget:selfaction:@selector(searchprogram)forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem*rightItem = [[UIBarButtonItemalloc]initWithCustomView:rightButton];
[rightButton release];
self.navigationItem.rightBarButtonItem= rightItem;
[rightItem release];
这种图片将填满button,大小可控
8.iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)
新特性要求App内访问的网络必须使用HTTPS协议。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。
最终找到以下解决办法:
在Info.plist中添加NSAppTransportSecurity类型Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
2.Bitcode问题(通俗解释:在线版安卓ART模式)
Build Settings”->”Enable Bitcode”改成”NO”
9.CocoaPods pod install/pod update更新慢的问题
最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动
原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
10.导航栏系统默认情况下修改标题字体大小和颜色
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor whiteColor]}];
11.改变navigation 导航栏颜色[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
12.//解决从上一界面到下一界面以后,在返回上一界面,上一界面整体控件下移的问题
self.automaticallyAdjustsScrollViewInsets = NO;
13.在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1)获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2)获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3)实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);
}
14.string去空格
1、使用NSString中的stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右两边的空格;
2、使用NSString *strUrl = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];可以去掉空格,注意此时生成的strUrl是autorelease属性的,不要妄想对strUrl进行release操作。
2.取消Cell的点击效果[Cell setSelectionStyle:UITableViewCellSelectionStyleNone];
3.修改navigaItem上的字体颜色self.navigationController.navigationBar.tintColor = [你的颜色];
4.网络获取图片宽和高改变查看是否加了约束
5.tableView不滑动self.tableView.userInteractionEnabled = NO;
6.tableViewCell点击以后cell改变高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (arr.count > 0) {
if (indexPath.row == [[arr lastObject] integerValue]) {
if (self.Selected) {
return 150;
} else {
return 90;
}
} else {
return 90;
}
} else {
return 90;
}
}
//编辑样式
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{ return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{ NSUInteger row = [indexPath row];
id deleteObject = [xhcpRobot.messagePage.messagePageArr objectAtIndex:row];
[removeList removeObject:deleteObject];
}
#pragma mark - 点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (arr.count > 0) {
if (indexPath.row == [[arr lastObject] integerValue]) {
self.Selected = !self.Selected;
} else {
self.Selected = YES;
[arr removeAllObjects];
[arr addObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
}
} else {
[arr addObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
}
[self.type1tableView reloadData];
NSLog(@"msgId ===%@",msg.msgId);
[[HttpRequestService shareHttpRequestService] sendMessageDetailRequest:msg.msgId success:^(id obj) {
NSLog(@"msg.msgId ===%@",msg.msgId);
}];
NSUInteger row = [indexPath row];
id addObject = [xhcpRobot.messagePage.messagePageArr objectAtIndex:row];
[removeList addObject:addObject];
}
7.关于NavigationItem.rightBarButtonItem设置
UIButton*rightButton = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,30,30)];
[rightButtonsetImage:[UIImageimageNamed:@"search.png"]forState:UIControlStateNormal];
[rightButtonaddTarget:selfaction:@selector(searchprogram)forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem*rightItem = [[UIBarButtonItemalloc]initWithCustomView:rightButton];
[rightButton release];
self.navigationItem.rightBarButtonItem= rightItem;
[rightItem release];
这种图片将填满button,大小可控
8.iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)
新特性要求App内访问的网络必须使用HTTPS协议。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。
最终找到以下解决办法:
在Info.plist中添加NSAppTransportSecurity类型Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
2.Bitcode问题(通俗解释:在线版安卓ART模式)
Build Settings”->”Enable Bitcode”改成”NO”
9.CocoaPods pod install/pod update更新慢的问题
最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动
原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
10.导航栏系统默认情况下修改标题字体大小和颜色
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor whiteColor]}];
11.改变navigation 导航栏颜色[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
12.//解决从上一界面到下一界面以后,在返回上一界面,上一界面整体控件下移的问题
self.automaticallyAdjustsScrollViewInsets = NO;
13.在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1)获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2)获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3)实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);
}
14.string去空格
1、使用NSString中的stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右两边的空格;
2、使用NSString *strUrl = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];可以去掉空格,注意此时生成的strUrl是autorelease属性的,不要妄想对strUrl进行release操作。