关闭

刚毕业的时候遇到的一些问题,可能很简单但是也可以看一看

标签: ios
334人阅读 评论(0) 收藏 举报
分类:
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操作。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2842次
    • 积分:94
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条