簡體   English   中英

uiview下拉陰影透明度問題

[英]uiview drop shadow transparency issue

我有一個帶有“陰影”的UITextView和一個位於它下面的tableView 我不知道的問題是如何使“陰影”透明,以便可以通過陰影看到下面的tableView和細節(請參見下圖)。 我嘗試使用不透明度和半徑,但是它不起作用。

這是我創建陰影的代碼:

postDetails.layer.shadowColor = [[UIColor blackColor] CGColor];
postDetails.layer.shadowOffset = CGSizeMake(0.0f, 3.0f);
postDetails.layer.shadowRadius = 3.0f;
postDetails.layer.shadowOpacity = 0.3f;
postDetails.layer.masksToBounds = NO;

編輯:我認為也是導致該問題的是布局。 它是:

  • UIView(超級視圖)
  • UITextview(UIView的子視圖)
  • UITableView(UIView的子視圖)

文本應該能夠從陰影中看到,以使外觀更清晰。

在此處輸入圖片說明

我能夠做到這一點的方法是通過.shouldRasterize屬性。

  1. 我創建一個稱為陰影視圖的視圖。
  2. 確保它以任何方式透明。
  3. 在代碼中配置陰影:

     UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds]; _viewShadow.layer.masksToBounds = NO; _viewShadow.layer.shadowColor = [UIColor blackColor].CGColor; _viewShadow.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); _viewShadow.layer.shadowOpacity = 1.0f; _viewShadow.layer.shadowPath = shadowPath.CGPath; _viewShadow.layer.shouldRasterize = true; 
  4. 現在我們可以使陰影視圖透明!

     _viewShadow.alpha = 0.8f; 
  5. 此時,您應該看到一個透明視圖,其中投影僅顯示在圖像邊界之外。

  6. 最后,我們將內容顯示在陰影視圖的頂部 ,因此不會受到Alpha更改的影響。

在對父層進行任何alpha混合之前,我基本上使用.shouldRasterize屬性來渲染該層。

嘗試使用以下代碼:

postDetails.layer.shadowColor = [UIColor colorWithWhite:.5 alpha:1].CGColor;
postDetails.layer. shadowOpacity = 1.0f;

由於textView的陰影不會擴展到tableView的全長,因此無法解決您的問題。 取而代之的是,您可以將透明視圖放在tableView的頂部。 在編輯期間添加具有背景透明背景色的臨時視圖,並在編輯完成后將其刪除

self.overlayView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5];

剛設定

postDetails.layer.borderColor = [[UIColor grayColor] CGColor]; // set color as you want
postDetails.layer.shadowOpacity = 0.3f; // set Opacity as you want
postDetails.layer.shadowOffset = CGSizeMake(0.0, -1.0); // set it as you want

我使用UIImageView提供陰影。 我創建了一個圖像,寬1像素,高12像素。 圖像是黑色的,但是alpha是從頂部的0.5到底部的0.0的漸變。 RGBA 1.0,1.0,1.0,0.5-> 1.0,1.0,1.0,0.0-然后我將UIImageView放置在需要陰影的視圖的正下方,並在視圖的寬度上水平拉伸它。 當需要在下面的滾動視圖滾動時通過更改UIImageView.alpha值來更改陰影的強度時,也使用了此方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM