[英]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.zPosition
和view.backgroundColor=UIColor.clearColor
沒有運氣。
有誰知道那里發生了什么?
更新:
UICollectionView 也會出現同樣的問題。
回復評論:
UIUserInterfaceStyle
更改為“Light”並沒有幫助。我也遇到了麻煩。 我發現問題是由於某種原因,當顯示單元格時, 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.