【问题标题】:Displaying a shadow on views that will resize在将调整大小的视图上显示阴影
【发布时间】:2015-01-22 16:17:10
【问题描述】:

我希望我的观点有阴影。当我第一次为我的所有视图添加阴影时,我很快遇到了一个问题,UI 非常滞后。然后我意识到在绘制阴影时我应该使用UIBezierPath 并将shouldRasterize 设置为true。 一切都再次变得如丝般光滑,但有一个问题,这些阴影是静态的。他们不会随着视图调整大小。 这些视图都在它们自己的UITableViewCell 中,并且这些单元格的高度会动态调整以适应视图中的内容。但是当某个单元格调整大小(带有动画)时,我希望视图及其阴影也调整大小,但它们不会因为它们被光栅化。

有人对我如何解决这个问题有任何想法吗?

【问题讨论】:

    标签: ios swift uiview shadows


    【解决方案1】:

    让这个阴影可拉伸是否合适? 如果是这样,您可以尝试将阴影绘制一次到共享的 UIImage (并缓存它) UIBezierPath to UIImage

    然后借助 UIImage 的方法将具有可调整大小的 UIImage 的背景 UIImageViews 设置为您的视图

    resizableImageWithCapInsets:
    

    您将拥有一张用于所有阴影的图像,这些图像将作为背景 UIImageView 添加到您的视图中。

    【讨论】:

    • 作为一个更简单的解决方案,您可以尝试在视图调整大小后调用 setNeedsDisplay 到您的背景视图(这会导致您的视图和视图层次结构重新渲染)。
    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多