直播流地址

HTTP协议直播源 香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8 CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 CCTV3高清:http://ivi.bupt.edu. »

自定义UIView,重写init还是initwithframe?

重写init,一定会调用initwithframe, 但是重写initwithframe,就不一定调用init了。 如果你的其他同事调用你的initwithframe方法,但是你重写了init方法,那么init方法就不会被执行了。 所以:!!!我们一定要在initwithframe中重写。这样不管怎么调用(xib除外),都可以调用到initwithframe里的代码。 »

UIScrollView中,手指离开拖动后禁用系统滑动

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { if (!decelerate) { // 处理你的代码,这个时候ScrollView不会继续滑动 } else { // 处理你的代码,这个时候ScrollView会继续滑动 } } -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ // scrollView开始滑动,下面的代码可以让scrollView停在手指离开的位置 [scrollView setContentOffset: scrollView.contentOffset »

在这种情况下改变Frame无效

很多时候我们改变一个View的Frame,是可写既可得的,写了一个新的Frame后,View的大小和布局就已经改变了,但是有一种情况下,可不是这样的,那就是我们现在常用的适配方案:Masonry。 如果我们开始使用Masonry给一个View布局,那么后期通过更改Frame改变View的显示,还是有一定困难的,一个是自动布局,一个是绝对布局,他们之间共同会有一些不可预料的结果。 如果你发现你的frame无法很好的改变,出现了自己预料不到的结果,那么很有可能是开始设置布局的时候通过Masonry给view布局的,因为Masonry目前很多项目都使用这个适配布局方式,也很容易忘记这个Bug而导致发费了很长时间才明白为什么改变Frame不能达到预期效果的原因。 »

iOS中导航栏隐藏

第一种在viewWillAppear或者viewDidAppear中添加 [self.navigationController setNavigationBarHidden:YES animated:YES]; 代码,这个代码可以需要动画或者不要动画的隐藏导航栏。 但是有些时候这个可能满足不了你的需求,比如子页面左滑到上一个页面的时候,会出现不好的体验,这个时候可以用导航栏的代理方法: UINavigationControllerDelegate #pragma mark - UINavigationControllerDelegate // 将要显示控制器 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController »

removeFromSuperview

切记: 1.RemoveFromSuperView执行后,view不会从内存中消失 2.drawRect中不要执行这个方法 »

iOS面试基础

基本是大公司的面试细节。比较全面,需要掌握的也比较多。 类别的作用?继承和类别在实现中有何区别? Category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。 并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。 类别主要有3个作用: (1)将类的实现分散到多个不同文件或多个不同框架中。 (2)创建对私有方法的前向引用。 (3)向对象添加非正式协议。 (4)通过运行时的关联属性,可以为Category添加属性。 继承可以增加,修改或者删除方法,并且可以增加属性。 »

为什么Category里面不能重写方法?

千万不要重写,千万不要重写,千万不要重写,(+load方法除外) Category是原始作用也就是最重要的使用规则:不改变原始类的情况下,添加自己的方法。 我们不可以重写原始类的方法,会出现很严重的问题。 1.Category我们在使用的时候都会import一下,其实,主要你写了这个分类,你写的方法就已经在原始类里面了,即使你不import,通过performSelector:方法,你也会发现可以运行你自定义的方法。所以说,只要写了分类,就已经在原始类里面出现了,我们在代码里面添加import只不过是方便IDE给我们代码提示。 2.分类不是继承,分类不是子类。你重写了一个方法, »

iOS数据存储

数据存储全名为:数据结构存储方式 数据结构:是NSString,NSArray,NSDictory,NSSet等。 存储方式:是存在内存中还是闪存中。(把内存的信息序列化到闪存中叫做归档) iOS中的数据存储用下面四种方式: NSUserDefaults,用于存储配置信息 主要就是配置,内部使用类似NSDictory字典的方式进行存储。使用和NSDictory没有太大区别。适用于简短的配置信息。缺点是key值不明确,如果项目规划的不好,不能很好的找到自己曾今定义过的key值和value值。不方便查找。而且value不能为自定义的对象如“Person”自定义类。如果需要存储自定义类,需要使自定义类继承NSCoping等协议, »