Я обнаружил некоторую регрессию в своем приложении, которая, я уверен, началась только в Xcode 11.3.1 (iOS 13).
Раньше она работала замечательно, но теперь мы начали видеть что-то странное. . тени, которые мы добавляем в каждую ячейку, внезапно исчезают при прокрутке таблицы.
![image description](https://res.cloudinary.com/dsiszvopq/video/upload/c_fit,h_803,w_300/v1584361706/uitableviewcell-shadow-disappears_dyahwf.gif)
Приложение использует 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
в plist на "Light" не помогло. - установить shadowColor в конце метода - не помогло help.
- добавление тени в cellforrow вместо willdisplaycell - не помогло