• UIView 相关

    问题描述: 有时候设置subView的center如下: subView.center = view.center; 但实际显示出来发现subView的位置不对,该如何处理? ####解决办法: 改为 subView.center = CGPointMake(view.frame.size.width / 2, view.frame.size.height / 2); 不要使用view.center,除非view和subView共用同一个superView,center这个属性指的是子view的中心点在父view中的位置,是以父view的坐标系为参考的; ####问题描述: UIView在自己实现draw方法时候,为什么整个view的背景都变成黑色? ####解决办法: 设置下view的backgroundColor就OK了。 说明:当view的backgroundColor为nil并且opaque属性为YES,自己实现draw方法,view的背景颜色就会变成黑色。 ####问题描述: UIView 通过layer 的 shadowColor、shadowOpacity、shadowOffset、shadowRadius 几个属性可以很方便的为 UIView 添加阴影效果。但是在添加了阴影后,会出现动画卡顿的现象,如何解决? ####解决办法: 为阴影指定路径,即设置 layer 的 shadowPath 属性。如下: view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath; 说明:不指定阴影路径时,绘制阴影会产生大量的 Offscreen-Rendered 。而 Offscreen-Rendered(离屏渲染)和 Blending(混合)是 iOS 绘图中对性能影响比较大的两方面。 参考:绘制阴影引发的 iOS 绘图性能问题总结...


  • iOS7 中 UIViewController 的转场

    iOS7提供了一套供开发者方便自定义Viewcontroller间切换动画的API,我们可以利用这些API来自定义自己的转场效果,替代系统提供的默认push、present等动画效果。 实现流程 首先介绍presentViewController转场动画的实现,主要流程如下: 自定义一个转场动画效果。 在 presentingViewConttroller 里实现 UIViewControllerTransitioningDelegate 代理 方法,主要有两个,分别是present时候的动画和disMiss时候的动画, present时候要实现的方法: - (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source; disMiss时候要实现的方法: - (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed; 这两个方法都返回刚才第一步自定义的转场动画。 在present的时候设置presentedViewController 的 transitioningDelegate如下: UIViewController *presentedVC = [[UIViewController alloc] init]; presentedVC.transitioningDelegate = self; [self presentViewController:presentedVC animated:YES completion:nil]; 关于navigationController的push、pop的动画流程如下所示: 自定义一个转场动画效果。 实现UINavigationControllerDelegate的代理方法,这里就一个 - (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController...