簡體   English   中英

UITableViewCell 陰影在滾動時消失(iOS 13)

[英]UITableViewCell shadow disappears on scroll (iOS 13)

我在我的應用程序中發現了一些回歸,我很確定現在才在 Xcode 11.3.1 (iOS 13) 上開始。

它曾經工作得很好,但現在我們開始看到一些奇怪的東西......我們添加到每個單元格的陰影突然在 tableview 滾動上自行消失。

圖片說明

該應用程序使用UITableView和內部委托方法willDisplayCell:我們調用此代碼:

dispatch_async(dispatch_get_main_queue(), ^{
    view.layer.cornerRadius = 4.0f;
    view.layer.borderWidth = 1.0f;
    view.layer.borderColor = [UIColor clearColor].CGColor;

    view.layer.shadowColor = shadowColor != nil ? shadowColor.CGColor : [[UIColor lightGrayColor] CGColor];
    view.layer.shadowOffset = CGSizeMake(0, 2.0f);
    view.layer.shadowRadius = 2.0f;
    view.layer.shadowOpacity = 1.0f;
    view.layer.masksToBounds = NO;
    view.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds cornerRadius:view.layer.cornerRadius].CGPath;
});

我嘗試使用view.layer.zPositionview.backgroundColor=UIColor.clearColor沒有運氣。

有誰知道那里發生了什么?

更新:

UICollectionView 也會出現同樣的問題。

回復評論:

  1. 將 plist 中的UIUserInterfaceStyle更改為“Light”並沒有幫助。
  2. 在方法結束時設置 shadowColor - 沒有幫助。
  3. 在 cellforrow 而不是 willdisplaycell 中添加陰影 - 沒有幫助

我也遇到了麻煩。 我發現問題是由於某種原因,當顯示單元格時, layer.clipsToBound 被重置為 True 修復它所需要做的就是當tableViewDelegate調用viewWillDisplayCell設置layer.clipsToBound = false

這對我有用。

嘗試在 collectionview 單元格的 awakefrom nib 中添加陰影,如下所示。

override func awakeFromNib() {
    super.awakeFromNib()
    view.layer.shadowColor = UIColor.red.cgColor
    view.layer.shadowOffset = CGSize(width: 0, height: 2)
    view.layer.shadowRadius = 2
    view.layer.shadowOpacity = 1
    view.layer.masksToBounds = false
}

暫無
暫無

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

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