在 UIScrollView 下方绘制阴影(滚动 UIView)

Posted

技术标签:

【中文标题】在 UIScrollView 下方绘制阴影(滚动 UIView)【英文标题】:Drawing a shadow below a UIScrollView (that scrolls a UIView) 【发布时间】:2009-06-05 13:31:46 【问题描述】:

我的设置是屏幕中心的 UIScrollView(在 iPhone 上 - 就像 300x400 位于中心),其中包含相同宽度的 UIView,因此它垂直滚动。在此 UIView 中,我使用标签等绘制自定义子视图(它是具有各种颜色的记分牌)。

我希望在 UIScrollView 下方有一些阴影,以便整个滚动记分牌漂浮在我的背景上。

我发现了这个不错的帖子 How do I draw a shadow under a UIView? 我在我的 ScrollView 子类中使用此代码,但它对我不起作用。可能是因为我没有在 ScrollView 的 drawRect 中绘制实际形状:(因为它们是在 UIView 上绘制的)。

另外我猜为了让View在ScrollView中滚动,让ScrollView的阴影在滚动区域之外,我想我应该扩展ScrollView的“边界”吧?

【问题讨论】:

我只是使用了一个 UIImageView 并最终在图像中产生了阴影。我没有设法让其他任何工作。 【参考方案1】:

我不太清楚您在问什么,但是,如果您希望 scrollView 内容滚动到静态图像上,您只需将 UIView(或更可能是 UIImageView)添加到您的超级视图,然后添加您的 UIScrollView到那个。如果您将 UIScrollView 的背景颜色设置为 celarColor,则背景图像将显示出来 - 所以您的视图层次结构如下:

    界面窗口 UIView UIScrollView 滚动子视图

如果您使用 CoreGraphics 在滚动子视图中绘制您的高分表,那么您链接到的问题中的答案也将起作用。

【讨论】:

我宁愿不使用静态图像。由于我的分数 UIView 高度可能会改变。它可能是 2 行,然后是 5 行,然后大于整个 ScrollView 的高度。【参考方案2】:

在调用super 之前,如何在滚动视图子类的drawRect: 方法中显式填充整个self.bounds 矩形?

另一个想法是将滚动视图放在另一个进行阴影绘制的视图中。

【讨论】:

以上是关于在 UIScrollView 下方绘制阴影(滚动 UIView)的主要内容,如果未能解决你的问题,请参考以下文章

阴影减慢 UIScrollView

如何在 UIScrollView 的滚动指示器下方放置非滚动 UIView?

UIScrollView - 将视图移到前面,但在滚动指示器下方

UIScrollView 周围的 Safari 风格渐变阴影

UIScrollView 在导航和状态栏下方移动

在 UIScrollView 中绘制图形