天天看点

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

问题一:我添加导航栏后试图被遮盖了

关于添加Navigation导航栏后视图被遮盖的处理方法:

自己用的是在xib用autolayout布局的,辛辛苦苦搞了半天,却忘记考虑 导航栏和状态栏的高度了。

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

但是我记得添加 导航控制器后,view的顶部布局是自动添加导航栏的高度的。于是在网上搜了一下,事实上正是如此,问题轻松解决。

解决方法:

       在被遮盖的view的控制器中加入代码

更好的方法是在你自定义的Navigation控制器中添加方法,当然你也可以搞一个分类

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

代码部分(以便拷贝):

if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
           

问题二:自定义TarBar上按钮显示的图片太大

定义View作为TarBar,用UIButton作为TarBarItem使用,由于美工提供的切图不好,图片太大,导致按钮上的图片看起来失真。

需求:得到一张缩小后的图片

解决方法:

创建一个UIImage的分类

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

代码部分(以便拷贝):

+ (UIImage *)OrignImage:(UIImage *)image scaleToSize:(CGSize)size
{
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *scaledImage =UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}
           

问题三:关于tableView处理的小细节

一。去除tableView多余的分割线:

代码部分(以便拷贝):

方法一:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone ;
           

上面方法会把所有分割线都去掉,如果你想要cell有内容的显示分割线,那么你就需要在cell中自己添加一个 用label做的的分割线

方法二:

self.tableView.tableFooterView = [[UIView alloc]init];
           

把footView创建为view  简单粗暴,同事cell有内容的部分还同样有分割线。

二。去除cell选中背景色

self.selectionStyle = UITableViewCellSelectionStyleNone;
           

问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

ViewController.delegate = self;
           

明明代理实现了,也遵守协议了,挂断点显示代理有内存地址,也就是存在的。但之后代理回调,断点显示的是

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

搞了好久,才发现,是不是因为对象提前被释放了?

零散知识点.....问题一:我添加导航栏后试图被遮盖了 问题二:自定义TarBar上按钮显示的图片太大问题三:关于tableView处理的小细节问题四:明明定义一个对象成为另一个对象的代理的,代理回调的时候却 代理是非法的内存地址

打印一下果然来到dealloc 方法!!

结论:如果你的代理,对象也遵守协议了,方法也实现了,但是你的代理仍然为空的,那么你就要考虑是不是对象被提前释放了