美文网首页
思考的问题

思考的问题

作者: 爱笑的Mr张 | 来源:发表于2018-03-15 18:15 被阅读0次

平时写代码总是一口气的写, 从没有思考过为什么要这么写。得改,,,

一、如何设置h5页面的高度?有图片的话加载延迟会不会高度会不会受影响?webView里面想做点击放大图片的话怎么做?

我记得是在加载完页面的方法里面设置一下就可以,不会有问题。但今天面试官说,如果页面里面有图片是会有问题的,因为图片没有加载出来的话就没有高度,图片加载出来之后页面的高度是会变化的。这个说法想想也是有道理的。

       查找了之前写的活动页面,上面是原生的,下面嵌套的h5,高度也是直接在finish里面获得的高度,并没有问题。

- (void)webViewDidFinishLoad:(UIWebView *)webView{  

MyLog(@"--------------------网页加载结束");    

CGFloat height = [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];  

self.desHeight = height;   

[self.tableView reloadData];

//    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone];

}


。。。当时的webView是写在cell里面,所以会出现一个问题。webView是可以滑动的,cell也是可以滑动的,然后就冲突了。

再然后把webView的滑动禁止,问题就解决了。

webView.userInteractionEnabled=NO;


上面提到的“webView是写在cell里面”,那么cell里面如何设置呢?

@property(nonatomic,weak) UITableViewCell *detailCell;

static NSString *cellID=@"webCell";

UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];

if (!cell) {

                   cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];

}

self.detailCell=cell;

UIWebView *webview=[self.detailCell.contentView viewWithTag:1000];

if (webview) {

       webview.frame=CGRectMake(5,30,kScreenW - 10,self.desHeight-30);

} else {

UIWebView *webView =[[UIWebView alloc] initWithFrame:CGRectZero];

webView.tag=1000;

webView.delegate = self;

webView.userInteractionEnabled=NO;

webView.backgroundColor=[UIColor clearColor];

[self.webView setScalesPageToFit:YES];

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/sys/home/suggestedReading?fileEntryId=%@",URL_BASE,self.activityId]];

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60.0];

[webView loadRequest:request];

[cell.contentView addSubview:webView]; self.webView = webView;

}

return self.detailCell;

一直觉得把webView放cell里面不好。但也没有想到很好的解决办法

二、适配iPhoneX(上面的高度是多少,下面的安全距离是多少,如何设置)和iPhone10(对单元格进行编辑会出现一个效果(啥效果我忘了),如何避免)?

iphoneX前段时间是适配过的,记得当时只改变了一下navigation的高度。今天打开了X出来之前的一个项目,也是好好的,奇怪,当时做的时候X还没有出来,难道我以前的框架就适配X?


三、realm的底层是怎么实现的?

四、GCD有队列吗?有几种队列?

五、朋友圈的cell如何实现?回复的评论如何实现?cell的高度如何设置性能高?

六、AVPlayerViewController需要把音视频全部缓存之后才能播放,AVPlayerViewController可以做缓存吗?

七、类别能加属性吗?如果可以,如何加属性?

八、Block与代理有什么区别?Block是如何实现的?为什么会循环引用?

block 更轻型,使用更简单,能够直接访问上下文,这样类中不需要存储临时数据,而是直接存储一个代码块的实现部分,而不需要再去定义一个函数。

九、dealloc什么时候会调用?什么情况下会写到dealloc?

1、这个类被release的时候会被调用;

2、这个对象的retain count为0的时候会被调用;

或者说一个对象或者类被置为nil的时候;

在webview没有加载完页面就返回的时候,需要在dealloc里面把webview 的delegate置为nil

十、项目是用什么模式做的?解释一下MVC?Controller能调用Model吗,Model能调Controller吗?

十一、如何测试内存泄漏,Instruments是怎么检测出来有内存泄漏的?

十二、id 和instancetype的区别?

在ARC(Auto Reference Count)环境下:

instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型.

在MRC(Manual Reference Count)环境下:

instancetype和id一样,不做具体类型检查

区别2:

id可以作为方法的参数,但instancetype不可以

instancetype只适用于初始化方法和便利构造器的返回值类型

1、tableview卡顿

2、runtime

3、加快编译速度

4、缓存图片怎么清理(怎么删除最近不常用的图片)

5、组件化,智能单元测试

6、http请求头有哪些

7、四次挥手

8、进程阻塞

9、kvo 消息 代理 block灵活运用

10、MVVM

11、如何实现一个下载器

12、一张1g的图片怎么上传

13、组件化开发

1、runloop

2、离屏渲染

3、监控日志,LP

4、检查内存泄漏的俩种方式

5、三次握手

6、SDWebImage

7、提测试工具

8、用到哪些第三方

9、用到的框架MVC

相关文章

  • 思考的问题

    平时写代码总是一口气的写, 从没有思考过为什么要这么写。得改,,, 一、如何设置h5页面的高度?有图片的话加载延迟...

  • 思考的问题

    今天接触了在外漂泊一个半月的生活,从广州回到北京。本打算香港的program结束后再北上重庆,然后直奔西藏,去一探...

  • 思考的问题

    我思考的问题, 1如何在工作上 能够将内心的想法表达出来。 利用抖音将工作乐趣用快乐形式表达出来。日更抖音,生活中...

  • 问题的思考

    在生活中和工作中,我们经常会遇到这样和那样的问题,那么遇到问题了,我们应该怎...

  • 思考大问题的思考

    当我们听大拿演讲时总会赞叹视角宽广,逻辑严谨,格局宏大。疯狂记录大拿的观点与结论,好有道理,收获满满,与圈子讨论又...

  • 关于问题的问题思考

    问题是什么? 迫于外界压力,人们经常在还没定义好问题的时候就仓促地给出解决方案。方法很多,一针见血的却很少。如果是...

  • 思考 | 问题背后的问题

    【日更第1406天】 当别人抛了一个球 我们会下意识接住 但会忽略另一个选择 我们也可以不接住 在罗胖的公众号10...

  • 思考你的思考,发现问题的问题

    能让我一口气读完的书已经很少了,如果能遇见,是彼此的幸运,比如说许荣哲的《小说课》。 读进去容易,读出来不易。每每...

  • 背景的重要性

    关于问题的思考需要思考问题的背景,自己思考的范围,需要将问题放到不同的背景进行思考。

  • 问题思考

    正能量与负能量

网友评论

      本文标题:思考的问题

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