Archive for 三月 2016

iOS开发:解决右滑返回上一页功能失效

iOS7以后,默认支持右滑返回上一页,但是,当隐藏navigationBar或是自定义返回按钮时,右滑返回就会失效。解决方法,自己实现interactivePopGestureRecognizer的delegate
viewDidLoad:

 navigationController?.interactivePopGestureRecognizer!.delegate =  self ;

实现UIGestureRecognizerDelegate定义的方法:

    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        if (navigationController?.viewControllers.count <= 1 ) {
            return false;
        }
        return true;
    }

iOS开发:解决UITableView的tableHeaderView与cell内容重叠以及cell只显示部分内容

cell有多行但只显示一行,报错 Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard height instead.显然是iOS认为我的cell没有高度,搜索了好多文章,基本上都是用

- (CGFloat)tableView:(UITableView *)tableView 
           estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 44;
}

- (CGFloat)tableView:(UITableView *)tableView 
           heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 44;
}

给cell设置高度,但我每个cell的高度都不是固定的,需要动态计算,既然已经用了AutoLayout,感觉实现起来很渣。
偶然发现原因竟然是没有给最下面的view设置与superview的margin,iOS这个设计就有点傻,superview的高度在没有约束的时候,就不会自动根据content算。加上以后,两个问题解决。动态cell高度,需要加上

        tableView.estimatedRowHeight = 110
        tableView.rowHeight = UITableViewAutomaticDimension

预估的高度与实际接近就行

iOS开发:UISearchController使用详解

UISearchController一般用在搜索功能,通常的交互是在ViewController1上有个SearchBar,不可输入,点击searchBar,展示ViewController2,此时searchBar变成可编辑状态,输入keywork,在ViewController2里展示搜索提示,searchBar上有Cancel按钮,点击后返回ViewController1。很常见的交互,某些PD偷懒,不考虑Android的特性,让Android版本也实现同样的效果,虽然技术上也能实现,但是,这是iOS的特性,iOS自带控件,对一名有情怀的Android开发来说,就是摧残,包括精神和肉体...
代码来自极客学院视频教程,图书管理项目。虽然我是新手,但感觉老师某些地方代码还是有点问题,擅自改动了一些些,另外,要吐槽一下,作为年费VIP,我提的问题快超过24小时了没有任何答复... Continue reading ‘iOS开发:UISearchController使用详解’ »

iOS开发:Swift AFNetworking 3.0使用示例

封装了个HttpManager,通过AFNetworking处理http请求,AFNetworking 3.0已经废弃POST和GET方法,因为SwiftyJSON可以直接将NSData作为参数,没有返回没有转换成String,String只用于debug输出,可注释掉,减少性能浪费。
HttpManager.swift: Continue reading ‘iOS开发:Swift AFNetworking 3.0使用示例’ »

iOS开发:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file

默认情况下,http协议因为安全问题被禁止使用,可以在Info.plist里配置打开。
在根节点下添加"App Transport Security Settings",在App Transport Security Settings下添加"Allow Arbitrary Loads",Value设为YES
如下图:
iOS-http-security