DevStore首页 > DEV资源 > 源码下载 > 源码详情

Face的一个用于保持复杂界面流畅性的开源框架

 
Steven | 2014-11-10 09:23    浏览量(1722)    评论(1)    收藏(2)
功能分类:工具 支持平台:iOS 运行环境:iOS
开发语言:Object-c 开发工具:Xcode 源码大小:530.50KB
下载源码 154 人下载

源码简介

AsyncDisplayKit是Facebook的开源框架,可以让复杂的用户界面保持流畅并快速响应。它最初是用来实现Facebook的Paper应用,并且和动画引擎POP密切相关。

源码截图

  • 框架图
  • 页面跳转的结构图
DevStore所有源码来自用户上传分享,版权问题及牵扯到商业纠纷均与DevStore无关。

源码片段

- (void)setShadowInContext:(CGContextRef)context
{
  if ([self _shouldDrawShadow]) {
    CGColorRef textShadowColor = CGColorRetain(_shadowColor);
    CGSize textShadowOffset = _shadowOffset;
    CGFloat textShadowOpacity = _shadowOpacity;
    CGFloat textShadowRadius = _shadowRadius;

    if (textShadowOpacity != 1.0) {
      CGFloat inherentAlpha = CGColorGetAlpha(textShadowColor);

      CGColorRef oldTextShadowColor = textShadowColor;
      textShadowColor = CGColorCreateCopyWithAlpha(textShadowColor, inherentAlpha * textShadowOpacity);
      CGColorRelease(oldTextShadowColor);
    }

    CGContextSetShadowWithColor(context, textShadowOffset, textShadowRadius, textShadowColor);

    CGColorRelease(textShadowColor);
  }
}


- (UIEdgeInsets)shadowPadding
{
  if (_calculatedShadowPadding.top == -INFINITY) {
    if (![self _shouldDrawShadow]) {
      return UIEdgeInsetsZero;
    }

    UIEdgeInsets shadowPadding = UIEdgeInsetsZero;

    // min values are expected to be negative for most typical shadowOffset and
    // blurRadius settings:
    shadowPadding.top = fminf(0.0f, _shadowOffset.height - _shadowRadius);
    shadowPadding.left = fminf(0.0f, _shadowOffset.width - _shadowRadius);

    shadowPadding.bottom = fminf(0.0f, -_shadowOffset.height - _shadowRadius);
    shadowPadding.right = fminf(0.0f, -_shadowOffset.width - _shadowRadius);

    _calculatedShadowPadding = shadowPadding;
  }

  return _calculatedShadowPadding;
}
  •   赞(1) 赞 +1 赞(1) 已赞
  •   收藏(2) 收藏 +1 已收藏 取消
  •   下载(154)
评论(1)
lgt0605

lgt0605 2014-12-24 11:49:27

用不了,提示diff: /../Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
回复(0) 赞(0) 赞(1)
  • 推荐
  • 审核
  • 收录
  • 获取活力值

源码上传作者

  • 82 能力值
  • 15 源码
  • 26 评测
  • 0 资料

热门源码