在 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 的滚动指示器下方放置非滚动 UIView?
UIScrollView - 将视图移到前面,但在滚动指示器下方