博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios开发中的常见问题
阅读量:2340 次
发布时间:2019-05-10

本文共 4809 字,大约阅读时间需要 16 分钟。

原文地址:http://shavekevin.com/2016/04/12/iosdeveloptips/

1.取消cell的分割线 

tableview.separatorStyle = UITableViewCellSeparatorStyleNone;

2.UITabelviewCell 的高亮状态的取消 

用以下方法:

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{    //设置cell的背景是透明的。    cell.backgroundColor = [UIColor clearColor];    //取消cell的高亮状态    cell.selectionStyle = UITableViewCellSelectionStyleNone;}//使用下面的这个方法会导致cell不能响应点击事件- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath {    return YES;}

3.设置分割线的左右偏移量 

tableview  setSeparatorInset:inset

4.推送如何跳转到对应的controller

跳转界面

- (void)push:(NSDictionary *)params{    // 类名    NSString *class =[NSString stringWithFormat:@"%@", params[@"class"]];    const char *className = [class cStringUsingEncoding:NSASCIIStringEncoding];    // 从一个字串返回一个类    Class newClass = objc_getClass(className);    if (!newClass)    {        // 创建一个类        Class superClass = [NSObject class];        newClass = objc_allocateClassPair(superClass, className, 0);        // 注册你创建的这个类        objc_registerClassPair(newClass);    }    // 创建对象    id instance = [[newClass alloc] init]; // 对该对象赋值属性    NSDictionary * propertys = params[@"property"];    [propertys enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {        // 检测这个对象是否存在该属性        if ([self checkIsExistPropertyWithInstance:instance verifyPropertyName:key]) {            // 利用kvc赋值            [instance setValue:obj forKey:key];        }    }];    // 获取导航控制器    UITabBarController *tabVC = (UITabBarController *)self.window.rootViewController;    UINavigationController *pushClassStance = (UINavigationController *)tabVC.viewControllers[tabVC.selectedIndex];    // 跳转到对应的控制器    [pushClassStance pushViewController:instance animated:YES];}

检测对象是否存在该属性

- (BOOL)checkIsExistPropertyWithInstance:(id)instance verifyPropertyName:(NSString *)verifyPropertyName{    unsigned int outCount, i;    // 获取对象里的属性列表    objc_property_t * properties = class_copyPropertyList([instance                                                           class], &outCount);    for (i = 0; i < outCount; i++) {        objc_property_t property =properties[i];        //  属性名转成字符串        NSString *propertyName = [[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];        // 判断该属性是否存在        if ([propertyName isEqualToString:verifyPropertyName]) {            free(properties);            return YES;        }    }    free(properties);    return NO;}

来源于简书: 

7.3D效果 还不错哦

8.xcode7引入xmpp提示module libxmlsimu not found怎么解决?

解决方案如下图:

9.data进行MD5 加密

10.UIVisualEffectView 背景是虚化的(类似我们iphone查看通知时的虚化背景)

11.NSDate 的坑

Also when using a date format string using the correct format is important.

@"YYYY" is week-based calendar year.

@"yyyy" is ordinary calendar year.

可以看下面这篇博客:

12.swift 实时滤镜

13.动态加载视频

14.swift 闭包

15.理解contentsScale

16.图文混排

19.textField 文字上下居中

textField.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;//.全部删除按钮textField.clearButtonMode =UITextFieldViewModeWhileEditing;[textFieldsetAutocapitalizationType:UITextAutocapitalizationTypeNone];

26.下面的view或self.view如果小于上面的,上面的view超过下面的部分将无法与用户交互。

27.自定义cell时,最好在cell.contentView上加控件

29.正则 

(?<=src\s*\=\s*\")[\d\D]+?(?=\")

取出html 中的src 图片 

32.dealloc的super dealloc必须放在最后面

33.所有不带星号的和id类型的都只能assign

39.程序崩溃处理方法

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);}

调用下面的方法,如数组越界,调用不存在的方法等会打出详细的信息。

void UncaughtExceptionHandler(NSException*exception) {   NSArray *arr = [exception callStackSymbols];   NSString *reason = [exception reason];   NSString *name = [exception name];   NSLog(@"\nname: %@\reason: %@\nuserInfo: %@\ncallStackSymbols:%@\ncallStackReturnAddresses: %@",name,reason,[exceptionuserInfo],arr,[exceptioncallStackReturnAddresses]);}

开启僵尸模式 Object-C的Enable Zombie Objects勾选,Memory 中的MallocStack勾选,Exceptions里的Log Exceptions勾选

40.NSLog 怎么打印出变量类型的?

NSStringFromSelector(SEL aSelector);NSSelectorFromString(NSString *aSelectorName);NSStringFromClass(Class aClass);NSClassFromString(NSString *aClassName);NSStringFromProtocol(Protocol *proto)NSProtocolFromString(NSString *namestr) NSStringFromCGPoint(CGPoint point);NSStringFromCGVector(CGVector vector);NSStringFromCGSize(CGSize size);NSStringFromCGRect(CGRect rect);NSStringFromCGAffineTransform(CGAffineTransform transform);NSStringFromUIEdgeInsets(UIEdgeInsets insets);NSStringFromUIOffset(UIOffset offset);CGPointFromString(NSString *string);CGVectorFromString(NSString *string);CGSizeFromString(NSString *string);CGRectFromString(NSString *string);CGAffineTransformFromString(NSString *string);UIEdgeInsetsFromString(NSString *string);UIOffsetFromString(NSString *string);

转载地址:http://cdwvb.baihongyu.com/

你可能感兴趣的文章
13日cnblog会谈摘要
查看>>
尝试解决MT的Add to My Yahoo!的字符集问题
查看>>
MoreGoogle提供的网页缩略图服务
查看>>
每天到REFERER到我的网站上来的主页上去溜达一下
查看>>
北京羽毛球场地预定电话
查看>>
本周CNBlog例会:Grassland搜索的后台迁移
查看>>
Flickr的网络收藏夹服务
查看>>
BLOG="Better Listings On Google" ? Google BlogSearch上的 BSP索引收录量比较
查看>>
用sed批量替换文件中的字符
查看>>
九型性格心理测试 (From Ulla Zang荣格的个人性格测验题目)
查看>>
MT模板修改2则: 评论分段和firefox的缺省字体适应
查看>>
[MT] 3.32升级备忘
查看>>
MT 3.33发布: 安全漏洞修正
查看>>
给Blog加上雅虎通PingMe服务:和网站用户即时聊天
查看>>
顶级域名注册分布统计:2006年09月 .com .de .net .uk .cn
查看>>
雅虎通可以批量添加MSN用户了
查看>>
应届生如何应聘雅虎中国/阿里巴巴工作职位
查看>>
豆瓣“我上”:一个blog就是一本有趣的书
查看>>
速度比较:GMail/MSN/Yahoo!Mail
查看>>
搜索引擎来路关键词的挖掘:百度统计的高级分析报告导出获取来源关键词
查看>>