iOS 开发常见问题汇总


  • 每次当iPhone发布新尺寸的设备的时候,程序员都要对新尺寸的屏幕做适配,比如iPhone 5和 iPhone X 系列发布后,有的APP会出现无法占满屏幕的情况。这种情况只要将启动图的尺寸配置好就可以了。
对应位置拖入对应的启动图片就可以啦

  • 如果想给控制添加炫酷一点的动画,苹果提供了几个漂亮好用的API,如果一些波纹效果,翻页效果等。
 kCATransitionFade   交叉淡化过渡 
 kCATransitionMoveIn 新视图移到旧视图上面 
 kCATransitionPush   新视图把旧视图推出去 
 kCATransitionReveal 将旧视图移开,显示下面的新视图 

 pageCurl            向上翻一页 
 pageUnCurl          向下翻一页 
 rippleEffect        滴水效果 
 suckEffect          收缩效果,如一块布被抽走 
 cube                立方体效果 
 oglFlip             上下翻转效果

例子:

CATransition *animation = [CATransition animation];
animation.duration = 0.7;
animation.timingFunction = UIViewAnimationCurveEaseInOut;

// 下面代码会出现水波纹的效果
animation.type = @"rippleEffect";
// type 和 subtype 配合使用 下面两行代码的作用
//  新页面从左侧进入将原来界面退出窗口
animation.type=kCATransitionPush;
animation.subtype=kCATransitionFromLeft;
[self.view.window.layer addAnimation:animation forKey:nil];
[self presentViewController:viewController animated:NO completion:completion];

  • 如果直接修改父容器的透明度的话,包含在内的自视图也会变透明,只需要如下做法
self.view.backgroundColor = [[UIColor whiteColor]colorWithAlphaComponent:0.7f];

  • 在比较负责的cell中 往往是点击不同的部分进行不同的操作,比如:微博的每个Cell,有原创的,有转发的,有带图片的 有带视频的 不能只通过 didSelectRowAt 来处理点击。我把需要点击的部分用一个button容器包装起来,这样根据button的点击来处理就简单多了。
// 关闭交互 将事件传递给父button
self.PTView.isUserInteractionEnabled = false

  • 项目需求是不要求四舍五入保留1位小数,而String(format: "%.2f", 3.14) 都是会四舍五入的,而且这么个功能用截取字符串的方式总感觉笨拙,可以用一下的方法
/// 保留N为小数 并且不四舍五入
///
/// - Parameters:
///   - orgNumber: 要格式化的数值 (可以根据需要修改类型 String|float...)
///   - savePoint: 希望保留的小数位
///   - keepZero: 如果遇到0是否保留 比如 true : 2.08 -> 2.0 反之 2
/// - Returns: 返回一个NSDecimalNumber
func formatNumber(orgNumber: Double, savePoint: Int16, keepZero: Bool = true)-> NSDecimalNumber{
    
    let behavior = NSDecimalNumberHandler.init(roundingMode: .bankers, scale: savePoint, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: keepZero)
    
    return NSDecimalNumber(value: orgNumber).rounding(accordingToBehavior: behavior)
}

你可能感兴趣的:(iOS 开发常见问题汇总)