IOS开发入门之TableView不显示没内容的Cell怎么办?
白羽 2018-11-23 来源 :网络 阅读 1014 评论 0

摘要:本文将带你了解IOS开发入门之TableView不显示没内容的Cell怎么办?,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门之TableView不显示没内容的Cell怎么办?,希望本文对大家学IOS有所帮助。



TableView不显示没内容的Cell怎么办?

类似这种,我不想让下面那些空的显示.

很简单.

 

 

    

1    self.tableView.tableFooterView=[[UIViewalloc]init];    

 

 

试过的都说好.

加完这句之后就变成了这样.

自定义了leftBarbuttonItem左滑返回手势失效了怎么办?

    

self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc] initWithImage:img style:UIBarButtonItemStylePlain target:self action:@selector(onBack:)]; self.navigationController.interactivePopGestureRecognizer.delegate=(id)self;    

ScrollView莫名其妙不能在viewController划到顶怎么办?

    

self.automaticallyAdjustsScrollViewInsets=NO;    

键盘事件写的好烦躁,都想摔键盘了,怎么办?

1.买个结实的键盘.

2.使用IQKeyboardManager(github上可搜索),用完之后腰也不疼了,腿也不酸了.

为什么我的app老是不流畅,到底哪里出了问题?

如图

这个神器叫做:KMCGeigerCounter,快去github搬运吧.

怎么在不新建一个Cell的情况下调整separaLine的位置?

    

_myTableView.separatorInset=UIEdgeInsetsMake(0,100,0,0);    

怎么点击self.view就让键盘收起,需要添加一个tapGestures么?

    

-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event { [self.viewendEditing:YES]; }    

怎么给每个ViewController设定默认的背景图片?

使用基类啊,少年。

想在代码里改在xib里添加的layoutAttributes,但是怎么用代码找啊?

像拉button一样的拉你的约束.nslayoutattribute也是可以拉线的.

怎么像safari一样滑动的时候隐藏navigationbar?

    

navigationController.hidesBarsOnSwipe=Yes    

导航条返回键带的title太讨厌了,怎么让它消失!

    

[[UIBarButtonItemappearance]setBackButtonTitlePositionAdjustment:UIOffsetMake(0,-60) forBarMetrics:UIBarMetricsDefault];    

CoreData用起来好烦,语法又臭又长,怎么办?

MagicRecord

CollectionView 怎么实现tableview那种悬停的header?

CSStickyHeaderFlowLayou

能不能只用一个pan手势来代替UISwipegesture的各个方向?

    

-(void)pan:(UIPanGestureRecognizer*)sender { typedefNS_ENUM(NSUInteger,UIPanGestureRecognizerDirection){ UIPanGestureRecognizerDirectionUndefined, UIPanGestureRecognizerDirectionUp, UIPanGestureRecognizerDirectionDown, UIPanGestureRecognizerDirectionLeft, UIPanGestureRecognizerDirectionRight }; staticUIPanGestureRecognizerDirectiondirection=UIPanGestureRecognizerDirectionUndefined; switch(sender.state){ caseUIGestureRecognizerStateBegan:{ if(direction==UIPanGestureRecognizerDirectionUndefined){ CGPointvelocity=[sendervelocityInView:recognizer.view]; BOOLisVerticalGesture=fabs(velocity.y)>fabs(velocity.x); if(isVerticalGesture){ if(velocity.y>0){ direction=UIPanGestureRecognizerDirectionDown; }else{ direction=UIPanGestureRecognizerDirectionUp; } } else{ if(velocity.x>0){ direction=UIPanGestureRecognizerDirectionRight; }else{ direction=UIPanGestureRecognizerDirectionLeft; } } } break; } caseUIGestureRecognizerStateChanged:{ switch(direction){ caseUIPanGestureRecognizerDirectionUp:{ [selfhandleUpwardsGesture:sender]; break; } caseUIPanGestureRecognizerDirectionDown:{ [selfhandleDownwardsGesture:sender]; break; } caseUIPanGestureRecognizerDirectionLeft:{ [selfhandleLeftGesture:sender]; break; } caseUIPanGestureRecognizerDirectionRight:{ [selfhandleRightGesture:sender]; break; } default:{ break; } } break; } caseUIGestureRecognizerStateEnded:{ direction=UIPanGestureRecognizerDirectionUndefined; break; } default: break; } }    

拉伸图片的时候怎么才能让图片不变形?

UIImage *image = [[UIImage imageNamed:@"xxx"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];


怎么播放GIF的时候这么卡,有没有好点的库?

FlipBoard出品的太适合你了:https://github.com/Flipboard/FLAnimatedImage

怎么一句话添加上拉刷新?

https://github.com/samvermette/SVPullToRefresh

    

[tableViewaddPullToRefreshWithActionHandler:^{ //prependdatatodataSource,insertcellsattopoftableview //call[tableView.pullToRefreshViewstopAnimating]whendone }position:SVPullToRefreshPositionBottom];    

怎么把tableview里cell的小对勾的颜色改成别的颜色?

    

_mTableView.tintColor=[UIColorredColor];    

本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色,怎么办?

    

-(void)navigationController:(UINavigationController*)navigationControllerwillShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated { [[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; }    

怎么把我的navigationbar弄成透明的而不是带模糊的效果?

    

[self.navigationBarsetBackgroundImage:[UIImagenew] forBarMetrics:UIBarMetricsDefault]; self.navigationBar.shadowImage=[UIImagenew]; self.navigationBar.translucent=YES;    

怎么改变uitextfield placeholder的颜色和位置?

继承uitextfield,重写这个方法

    

-(void)drawPlaceholderInRect:(CGRect)rect{ [[UIColorblueColor]setFill]; [self.placeholderdrawInRect:rectwithFont:self.fontlineBreakMode:UILineBreakModeTailTruncationalignment:self.textAlignment]; }    

你为什么知道这么多奇怪的花招?

去stackoverflow刷问题啊,少年!

能不能只用一个pan手势来代替UISwipegesture的各个方向?

    

-(void)pan:(UIPanGestureRecognizer*)sender { typedefNS_ENUM(NSUInteger,UIPanGestureRecognizerDirection){ UIPanGestureRecognizerDirectionUndefined, UIPanGestureRecognizerDirectionUp, UIPanGestureRecognizerDirectionDown, UIPanGestureRecognizerDirectionLeft, UIPanGestureRecognizerDirectionRight }; staticUIPanGestureRecognizerDirectiondirection=UIPanGestureRecognizerDirectionUndefined; switch(sender.state){ caseUIGestureRecognizerStateBegan:{ if(direction==UIPanGestureRecognizerDirectionUndefined){ CGPointvelocity=[sendervelocityInView:recognizer.view]; BOOLisVerticalGesture=fabs(velocity.y)>fabs(velocity.x); if(isVerticalGesture){ if(velocity.y>0){ direction=UIPanGestureRecognizerDirectionDown; }else{ direction=UIPanGestureRecognizerDirectionUp; } } else{ if(velocity.x>0){ direction=UIPanGestureRecognizerDirectionRight; }else{ direction=UIPanGestureRecognizerDirectionLeft; } } } break; } caseUIGestureRecognizerStateChanged:{ switch(direction){ caseUIPanGestureRecognizerDirectionUp:{ [selfhandleUpwardsGesture:sender]; break; } caseUIPanGestureRecognizerDirectionDown:{ [selfhandleDownwardsGesture:sender]; break; } caseUIPanGestureRecognizerDirectionLeft:{ [selfhandleLeftGesture:sender]; break; } caseUIPanGestureRecognizerDirectionRight:{ [selfhandleRightGesture:sender]; break; } default:{ break; } } break; } caseUIGestureRecognizerStateEnded:{ direction=UIPanGestureRecognizerDirectionUndefined; break; } default: break; } }    

 

 

拉伸图片的时候怎么才能让图片不变形?

1. UIImage *image = [[UIImage imageNamed:@"xxx"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
(刚才有人提醒这个已经deprecated了哈,现在的方法叫resizableImageWithCapInsets).

2.如下操作:

怎么播放GIF的时候这么卡,有没有好点的库?

FlipBoard出品的太适合你了。https://github.com/Flipboard/FLAnimatedImage

怎么一句话添加上拉刷新?

https://github.com/samvermette/SVPullToRefresh

    

[tableViewaddPullToRefreshWithActionHandler:^{ //prependdatatodataSource,insertcellsattopoftableview //call[tableView.pullToRefreshViewstopAnimating]whendone }position:SVPullToRefreshPositionBottom];    

怎么把tableview里cell的小对勾的颜色改成别的颜色?

_mTableView.tintColor = [UIColor redColor];

本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色,怎么办?

    

-(void)navigationController:(UINavigationController*)navigationControllerwillShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated{ [[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; }    

怎么把我的navigationbar弄成透明的而不是带模糊的效果?

    

[self.navigationBarsetBackgroundImage:[UIImagenew]forBarMetrics:UIBarMetricsDefault];self.navigationBar.shadowImage=[UIImagenew]; self.navigationBar.translucent=YES;    

怎么改变uitextfield placeholder的颜色和位置?

继承uitextfield,重写这个方法

    

-(void)drawPlaceholderInRect:(CGRect)rect{ [[UIColorblueColor]setFill]; [self.placeholderdrawInRect:rectwithFont:self.fontlineBreakMode:UILineBreakModeTailTruncationalignment:self.textAlignment]; }    

你为什么知道这么多奇怪的花招?

去stackoverflow刷问题啊,少年!

CGfloat和float的区别?

现在上架的app都要求支持64位系统,那么CGFloat和float的区别就在这里.command+左键点击CGFloat.

    

typedefCGFLOAT_TYPECGFloat;    

这里可以看到CGFloat是CGFLOAT_TYPE的宏定义,那么这个又是什么?

    

#ifdefined(__LP64__)&&__LP64__ #defineCGFLOAT_TYPEdouble #defineCGFLOAT_IS_DOUBLE1 #defineCGFLOAT_MINDBL_MIN #defineCGFLOAT_MAXDBL_MAX #else #defineCGFLOAT_TYPEfloat #defineCGFLOAT_IS_DOUBLE0 #defineCGFLOAT_MINFLT_MIN #defineCGFLOAT_MAXFLT_MAX #endif    

这段话的意思就是,64位系统下,CGFLOAT是double类型,32位系统下是float类型.CGFloat能够保证你的代码在64位系统下也不容易出错,所以你的代码应该尽量使用CGFloat.尽管他可能造成一些多余的消耗.不过能保证安全.

应该使用FOUNDATION_EXPORT还是#define来定义常量?

一般iOS我们定义常量的方法有两种,来看下面例子

我的.h文件

    

FOUNDATION_EXPORTNSString*constkMyConstantString; FOUNDATION_EXPORTNSString*constkMyConstantString2;    

.m文件是这样定义的

    

NSString*constkMyConstantString=@"Hello"; NSString*constkMyConstantString2=@"World";    

还有一种是常用的#define方法了

    

#definekMyConstantString@"Hello"    

有什么区别呢?

使用第一种方法在检测字符串的值是否相等的时候更快.对于第一种你可以直接使用(stringInstance == MyFirstConstant)来比较,而define则使用的是这种.([stringInstance isEqualToString:MyFirstConstant])

哪个效率高,显而易见了.第一种直接比较的是指针地址,而第二个则是一一比较字符串的每一个字符是否相等.

static inline function是干嘛的?

如果你的.m文件需要频繁调用一个函数,可以用static inline来声明,这相当于把函数体当做一个大号的宏定义.不过这也不是百分之百有效,到底能不能把函数体转换为大号宏定义来用要看编译器心情,它要是觉得你的方法太复杂,他就不转了.他直接调用函数.

类似这种简单函数他肯定是乐意的.

    

staticinlineCGRectScaleRect(CGRectrect,floatn)    

这到底是什么鬼?static void *CapturingStillImageContext = &CapturingStillImageContext;

这种声明方式常用于kvo,用来当做contenxt的key来添加.例如

    

[selfaddObserver:selfforKeyPath:@"stillImageOutput.capturingStillImage"options:(NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew)context:CapturingStillImageContext];    

这种声明方式可以导致a method to create a unique pointer at compile time.在编译的时候创建一个唯一的指针.因为kvo的时候context如果不小心重复了,会发生奇怪的事情.用这种方式可以避免.

如何快速定位crash的位置?

选择Add Exception Breakpoint

这样如果你的app再crash就会自动定位到那句话.

最快速的提升流畅度的方法?

用instrument找出所有不需要透明但是透明的view,layer.全部弄成不透明的.

选中Profile


选中ColorBlended Layers

选择我们最近风生水起的weibo客户端

然后你会看见这些东西。

红色或者深红色的就是透明的层和view,他们就是拖慢你fps的罪魁祸首,如果不需要透明的就改掉.

一个神奇的工具,Accessorizer.

到底叼不叼,看图就知道了.

我安装的软件

 

           

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程