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

私は同じことを達成したかったのですが、ここで与えられた解決策はうまくいきませんでした。つまり、ビュー コントローラー (フレーム 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 に答える
0

まず、scrollView の外側の端が superView 内に表示されていることを確認してください。scrollView が superView の端まで移動すると、影が画面外に出て見えなくなります。

shadowOpacity は 0.0 から 1.0 までの float 値なので、スライダーの最小値と最大値がそれぞれ 0.0 と 1.0 に設定されていることを確認してください。

また、あなたのように shadowRadius を変更したいとは思わない。これが機能するまで、おそらくそのプロパティをそのままにしておくことができます。

また、shadowOffset プロパティを変更して、影が目的の方向を向いていることを確認することもできます。

于 2012-07-25T14:42:23.050 に答える