uiimage截取一部分, iOS6/7 deltas

        UIImage截取其中的一部分

UIImage  *bg = XXXX
CGRect rect = CGRectMake( 0, 20, 320, 44);
CGImageRef p_w_picpathRef = CGImageCreateWithImageInRect(bg.CGImage, rect);
bg = [UIImage p_w_picpathWithCGImage:p_w_picpathRef];
CGImageRelease(p_w_picpathRef);

        iOS6/7 deltas做6,7的适配,看到一篇文章解释的很清楚,但是我在用UINavigationBar的时候不好用,还是得加代码写偏移。

第一步:不要勾选xib中的Use Autolayout,如下图:

uiimage截取一部分, iOS6/7 deltas

第二步:第二步:选择View as “ios6.1 and Earlier”,还是上图位置处;

第三步:在Size Inspector中,有一ios6/7 Deltas:分别表示在PosX的增量、PosY的增量、宽度增量、高度增量。

uiimage截取一部分, iOS6/7 deltas
ps:在“ios6.1 and Earlier”模式下,由于status bar的高度为20,所以当app运行在ios7.0模式下时,需要view向下移动20像素,因此在ΔY上设置为20.
tableView坐标向下移动了20,由于整个屏幕的高度是不变的,所以在“ios7.0 and Later”模式下,需要将tableView的高度减去20像素,即在“ios6.1 and Earlier”模式下,设置tableView的ΔHeight为 -20。如果不设置ΔHeight,tableView底部会有20像素是不可见的,可以测试demo看看。
***注***:Δ,正数表示增,负数表示减。

第四步:ok,设置完成,到IOS上看效果:

uiimage截取一部分, iOS6/7 deltas

是不是神奇的发现跟以前的有似曾相识的赶脚呢。。。这样“ios6.1 and Earlier”和“ios7.0 and Later” UI布局便统一了。

© 版权声明

相关文章