0

在我的 iOS 应用中

我的应用程序包含滚动视图,我想放置一个阴影,我尝试了很多代码,但它们都没有工作..

我以编程方式采取了滚动视图

[self.view addsubview:scroll1];

想使用滑块在滚动视图上设置阴影

所以如果有人知道然后回答它......

-(IBAction)slide3changed:(id)sender
{
    UISlider *slider=(UISlider*)sender;

    scroll1.layer.shadowColor = [UIColor blackColor].CGColor;
    scroll1.layer.shadowRadius = slider.value;
    scroll1.layer.shadowOpacity = slider.value;
}
4

4 回答 4

7

你在正确的轨道上,但你需要设置masksToBounds

-(IBAction)slide3changed:(id)sender
{
    UISlider *slider=(UISlider*)sender;

    scroll1.layer.shadowColor = [UIColor blackColor].CGColor;
    scroll1.layer.shadowRadius = slider.value;
    scroll1.layer.shadowOpacity = slider.value;
    scroll1.layer.masksToBounds = NO; // This is important
}
于 2012-07-25T14:49:26.783 回答
2

我相信您还必须设置偏移量才能开始出现阴影。

scroll1.layer.masksToBounds = NO; // this default
scroll1.layer.shadowColor = [[UIColor blackColor] CGColor];
scroll1.layer.shadowOpacity = slider.value;
scroll1.layer.shadowRadius = slider.value;
scroll1.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
于 2012-07-25T14:46:32.813 回答
0

首先,你确定你的scrollView的外边缘在superView里面是可见的吗?如果 scrollView 一直到 superView 的边缘,那么阴影将在屏幕外,因此不可见。

shadowOpacity 是一个介于 0.0 到 1.0 之间的浮点值,因此请确保滑块的最小值和最大值分别设置为 0.0 和 1.0。

另外,我不认为你想像你一样改变 shadowRadius。您可能可以不理会该属性,直到您开始工作为止。

您也可以尝试更改 shadowOffset 属性以确保阴影指向您想要的方向。

于 2012-07-25T14:42:23.050 回答
0

我想达到同样的效果,这里给定的解决方案对我不起作用。即使用分页的滚动视图虽然嵌套在视图控制器中(第 35、80、250、447 帧),但没有正确呈现。我所做的是在一个简单的 uiview 中添加滚动视图并使用以下代码:

self.scrollViewContainer.layer.shadowColor = [UIColor blackColor].CGColor;
self.scrollViewContainer.layer.shadowOpacity = 0.2f;
self.scrollViewContainer.layer.shadowOffset = CGSizeMake(0, 20);
self.scrollViewContainer.layer.shadowRadius = 5;
self.scrollViewContainer.layer.masksToBounds = NO;
于 2015-04-16T13:57:51.543 回答