[置顶] 使用NSURLSession简单做一个上传图片的方法

通常上传文件、图片。使用http请求的POST方法,在body体中还有一些固定的格式。iOS SDK中的NSURLSession是一个heigh-level API,由于上传图片是一次性请求,实现起来还是很方便的:下面是关键代码,一个函数即可可以实现:...
阅读(589) 评论(0)

[置顶] 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

本文旨在总结iOS知识网络,全面掌握iOS知识,包括框架,多线程,设计模式,消息转发;文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★);某些知识点会深入探讨。知识树中有些是原创文章,有些则是转载网络上iOS大神的文章。笔者会尽量详细的介绍各个知识点。当然一个人的知识面是相当有限的,在给各位读者提供知识参考的同时,欢迎大家对本文提意见。...
阅读(8842) 评论(9)

[置顶] Unicdoe【真正的完整码表】对照表(二)汉字Unicode表

注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示 D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用代理区标识 欢迎查看字符编码相关博客专栏 比如:由iPhone emoji问题牵出的UTF-16编码,UTF-8编码探究...
阅读(119999) 评论(1)

[置顶] Unicdoe【真正的完整码表】对照表(一)

真正完整的Unicode码表,其中CJK = Chinese-Japanese-Korean  下面列举了一些相关的索引。查看完整索引到:http://blog.csdn.net/xjgprs/article/details/5780574 2E80-2EFF:CJK 部首补充 (CJK Radicals Supplement)  2F00-2FDF:康熙字典部首 (Kangxi Ra...
阅读(305183) 评论(1)

cell 上下非对称margin新方式

UI设计师总是会设计出一些完美的视觉,但有些完美视觉效果需要特别的处理。前两年总听到一句话:一个漂亮的界面背后总是有一堆肮脏的代码。 先看一个有问题的效果。小图cell和大图cell之间的margin是12.5p,而两个小图cell之间的margin是25p.这是因为。cell的contentView在cell中是居中的,上下margin都是12.5。最终是这个效果:...
阅读(56) 评论(0)

[技巧]UIView的hidden和alpha的妙用

现状:暂停和loading都是通过hidden来实现显示和隐藏的。这两个的显示有各自的逻辑。暂停按钮显示5秒消失。loading图根据网络状况出现,消失。 解决原则是:loading视图要比暂停优先级高,即loading会踢走暂停按钮,loading消失,暂停还需要出现(如果有的话)。那么,既然无法控制hidden,我们可以利用另外一个属性alpha。这样即便alpha=1,也不影响视图的显示结果。写一个伪代码:...
阅读(215) 评论(0)

iOS区分不同版本URL schema

iOS项目开发中,同一个APP,在打包时,通常有三种版本:mobile版本,inhouse版本,App Store版本。前者用于程序员debug,inhouse用于测试同学、产品同学和公司其他同学的安装,最后的App Store则是发布版本。三个APP只是bundleID不同,证书不同。功能是完全一致。同一个设备上可安装三个APP,有些情况会给开发调试造成困扰,比如:APP带有第三方登录功能,用mobile版本APP登录,调起微信,授权后返回。由于mobile,inhouse,App Store三个APP都...
阅读(484) 评论(0)

[算法]iOS 视频添加水印,合成视频两种方案(整体渲染和分割渲染)

现手机里有一段视频,通过APP给他添加一个水印。iOS提供了在视频上添加layer的接口,添加一个水印还是很方便的(添加水印)。添加完水印有一个渲染过程,在手机这种设备上还是比较慢的,比如:对1分钟的高清视频(960x540)进行渲染需要20秒左右。如何在现有API基础上提高渲染速度,提升用户体验,成了问题。笔者发现两种渲染方法: 先看图,这有一个6秒的视频,我抓了四张关键帧。只在第2,3两张关键帧上添加字幕(一个关键帧代表1.5秒。所以,两个关键帧就代表是3秒时长)...
阅读(1343) 评论(0)

[经验]tableview的contentSize默默自己在变。

项目中遇到一个诡异的问题:tableview的contentSize在滚动的时候自动在变小。这里先说一下项目环境:UIViewController有个tableview,可以通过上拉加载,实现加载更多数据。在一日测试中发现,一直上拉,上拉到第三页的时候。页面反而滚动到了顶部惊讶。上拉加载更多,结果应该是tableview显示底部数据,contentoffset应该是一个比较大的值。现在却弹回去了。看看输出日志...
阅读(551) 评论(0)

scrollRectToVisible 无效的两个原因

除了UIScrollView的ContentSize的width或者height是0的原因外,可能还有一个原因就是UITableview的contentInset是负值,比如: self.tableView.contentInset = UIEdgeInsetsMake(-5, 0, 0, 0); 删除这个contentInset或者inset是正值,滚动到顶部都可以生效...
阅读(359) 评论(0)

iOS返璞归真,译文系列——UIViewController

UIViewController懒加载他的view。第一次访问视图属性加载或创建视图控制器的视图。 不是所有的“will”回调方法都只与“did”回调方法配对...
阅读(669) 评论(0)

iOS返璞归真,译文系列——UIScreen

UIScreen一个uiscreen对象定义了一个基于硬件的显示相关的属性。iOS设备的主屏幕和零个或多个连接的屏幕。一个TVOS装置具有电视连接到设备的主屏幕。使用此类获取连接到设备的每个显示器的屏幕对象。每个屏幕对象定义关联显示的边界矩形和其他有趣的属性,如它的亮度。概要        在iOS 8之前,屏幕的边界矩形总是反映相对于肖像定位屏幕尺寸。旋转设备的景观或倒置的方向并没有改变边界。在...
阅读(326) 评论(0)

iOS返璞归真,译文系列——UIWindow

UIWindow        UIWindow对象提供app界面的背景,和重要的事件响应交互。Windows本身没有任何可视的表现,但它对view的呈现起着关键作用。每一个view显示在屏幕上,其实是附在一个window上,每个window与应用程序中的其他window无关。应用程序收到的事件,最初被转发到相应的window对象上,然后将这些事件转发到相应的view中。Windows与view...
阅读(477) 评论(0)

iOS返璞归真,译文系列——UIView

UIView        UIView 是定义了屏幕上一块矩形区域,并管理着这块区域上内容的UI界面。概要        在运行时,view对象处理矩形区域上所有内容的渲染,并处理交互。UIView类本身提供了基本的填充背景色的能力。更复杂的view可以通过集成UIView或者实现一些必要的drawing方法和event-handing代码。UIKit架构也提供了一系列标准UIView的派生类,...
阅读(465) 评论(0)

【技巧】多行label AutoLayout 自适应高度。

多行label 高度自适应...
阅读(607) 评论(0)

移动互联网开发团队工作管理经验

● 做事情替别人想一步;仅需一步,不能多也不能少。 ● 别请假,一个人请假影响不止一人。 ● 项目经理不是技术最牛逼的,但一定是最能聚拢人心的。 ● 不要说“技术实现不了”,实现只是时间问题。 ● 产品要强势,要多了解产品逻辑(产品经理拿的工资也不少啊) ● 产品经理、技术、UE、UI和测试都要以产品为中心。 ● 客户端轻量化,重Server。...
阅读(435) 评论(0)

UIScrollView频道滑动(授人以鱼,不如授人以渔)

内容型APP(比如新闻,视频,汽车类型),通常采用多个页面(频道)滑动;另外,自动滚动的焦点图用到比较多的。本文简单介绍使用UIScrollView实现上述功能的原理,并附部分代码。无论是频道的滑动,还是焦点图自动滑动,都是基于UIScrollView的特性,viewController 实现UIScrollView的代理,并做一些控制即可。...
阅读(354) 评论(0)

iOS识别http是否使用了代理(proxy)

有些APP已经能精确识别:当前WiFi连接失败,是不是由于http代理引起的,已便得到更准确的用户提示,比如:...
阅读(1147) 评论(1)

【经验】清除appIcon的推送数量,但是在系统通知栏保留推送通知的方法

虽然appIcon上面的数字消除了,但是通知栏中所有的推送也会被清除。那么如何既让数字消失,又保留通知栏的推送信息呢?本人呕心沥血,查遍了苹果的接口文档,搜遍了国内的博客,就是没找到。...
阅读(855) 评论(1)

放在下一个runloop执行,保证当前执行正确

正常逻辑: 代码行2执行完,执行代码行3.可以达到预期效果。 异常逻辑: 代码行2是个数据处理(黑盒)。并没有立即返回一个错误 返回一个错误, notifyError。但是代码还是行代码行3了。这就是bug了 比较low的解决办法有:performSelect或者添加flag等。 比较优雅的解决办法是放到下一个runloop执行 这样即便代码行2返回错误,但是,需要执行完代码行3才结束当前runloop。 所以,在正常逻辑后,再出现异常,一般代码可以处理的。...
阅读(534) 评论(0)

使用AVPlayer播放m3u8视频时,实现视频截图

最近需要一个对m3u8文件的截图,但是搜索一段时间后发现方法都类似,但都不成功。经过测试该方法:普通的mp4和mov格式视频可以通过下面的方法获取截图。但是m3u8文件则不行,总提示错误 网上查阅资料后,可以使用AVPlayerItemVideoOutput的[AVPlayerItemVideoOutput copyPixelBufferForItemTime:itemTimeForDisplay:]来实现,方法如下:...
阅读(1690) 评论(0)

多个label,可变长情况下使用Masonry

常见的masonry的使用是比较简单,可应付一些常见的布局。但有些布局是动态的,则需要一些masonry和自动布局的技巧,直接上图,如何实现图片中cell的布局。 下图中,播放量可变长(必须显示完整);绿底的是“出品人名称”超长显示...;置顶icon必须跟在出品人后面,但不能超过右侧海报图的left...
阅读(1336) 评论(0)

iOS 项目整体是竖屏,个别页面支持横屏

最近在做一个视频APP,工程整体是竖屏的,如下图,播放器需支持横屏。在转屏的过程遇到很痛苦的问题。[UIApplication sharedApplication].statusBarOrientation = self.UIInterfaceOrientationLandscapeLeft; 未生效设置完后,还是UIInterfaceOrientationPortrait。查阅资料是UITabbarController的方法- (BOOL)shouldAutorotate没有返回NO。这是因为当UIvie...
阅读(1114) 评论(0)
224条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1003421次
    • 积分:7980
    • 等级:
    • 排名:第2687名
    • 原创:164篇
    • 转载:44篇
    • 译文:16篇
    • 评论:116条
    博客专栏
    最新评论