美文网首页
iOS开发中遇到的小问题解决方法

iOS开发中遇到的小问题解决方法

作者: 巧克力的qiao | 来源:发表于2015-12-18 10:02 被阅读230次

问题一

在开发中经常用self.title = @"主页"来设置navigationbar的标题
但会发现同时也设置了tabbaritem的标题。

Snip20151218_1.png

这样就导致了重复了。
原因
若直接用self.title = @"主页";
因为TabBarItem和NavigationBar都继承了view controller的title
所以导致这种UI现象的产生
解决方法
如果想单独设置navigationBar的title,可以这样写

self.navigationItem.title = @"主页";

问题二

表的分段section不能随着表往上滑

Snip20151218_3.png

解决方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView)
{
    CGFloat sectionHeaderHeight = 35;
    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
}
}

问题三

在第一次进入表控制器的时候发现还有20像素的状态栏未能被表深入,滑了一下之后发现又全部覆盖了。。。。。

屏幕快照 2015-12-18 下午2.04.51.png

解决方法
在初始加载表控制器的时候设置表的额外偏移量

 self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0);

问题四

如何判断获取到的图片是png还是jpeg?如何简单的判断是否是一个网址?

在NSString中有两个方法

- (BOOL)hasPrefix:(NSString *)aString;//前缀
- (BOOL)hasSuffix:(NSString *)aString;//后缀

这里举个例子:

NSString *str = @"http://baidu.com";
BOOL prefix = [str hasPrefix:@"http"];
BOOL suffix = [str hasSuffix:@"com"];

NSLog(@"prefix-----%i",prefix);
NSLog(@"suffix-----%i",suffix);
//  输出都为1

问题五

关于内存的问题,当创建一个xib时,由于在awakeFromNib方法中注册了通知,如下

-(void)awakeFromNib{
NSLog(@"注册通知-----------------");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cropSelectedNotifation:) name:@"du_cropsSelected" object:nil];
}

然后将这个xib加载到了UIViewController中,由于在iOS6以后 viewDidUnload方法只能是在发生内存警告时调用
所以在xib的.m中书写
-(void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"du_cropsSelected" object:nil];
}
时是当UIViewController被释放的时候才调用xib的dealloc方法 ,在当前UIViewController pushpop到其它控制器再回来时,又回走一次awakeFromNib方法,再次注册通知,因此cropSelectedNotifation :方法会走两次或多次,其调用的次数与xib注册的通知次数是一样的。解决方法就是使注册通知方法就走一次。
更详细解释点击链接http://stackoverflow.com/questions/5594410/viewdidunload-is-not-getting-called-at-all

相关文章

网友评论

      本文标题:iOS开发中遇到的小问题解决方法

      本文链接:https://www.haomeiwen.com/subject/emuphttx.html