问题一
在开发中经常用self.title = @"主页"来设置navigationbar的标题
但会发现同时也设置了tabbaritem的标题。
这样就导致了重复了。
原因
若直接用self.title = @"主页";
因为TabBarItem和NavigationBar都继承了view controller的title
所以导致这种UI现象的产生
解决方法
如果想单独设置navigationBar的title,可以这样写
self.navigationItem.title = @"主页";
问题二
表的分段section不能随着表往上滑
解决方法
- (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像素的状态栏未能被表深入,滑了一下之后发现又全部覆盖了。。。。。
解决方法
在初始加载表控制器的时候设置表的额外偏移量
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 push
或pop
到其它控制器再回来时,又回走一次awakeFromNib
方法,再次注册通知,因此cropSelectedNotifation :
方法会走两次或多次,其调用的次数与xib注册的通知次数是一样的。解决方法就是使注册通知方法就走一次。
更详细解释点击链接http://stackoverflow.com/questions/5594410/viewdidunload-is-not-getting-called-at-all