【发布时间】:2019-10-08 10:46:26
【问题描述】:
实际上,我有一个在 tableview 单元格内的视图上应用阴影。该视图的高度是动态的(基于内容)意味着表格视图单元格是自身大小的单元格。在 iOS 13 和 xcode 11 之前,我的代码可以完美运行,因为 tableview 单元格的“setSelected”方法返回单元格所有子视图的完美大小。在 iOS 13 和 xcode 11 中,tableview 单元格的“setSelected”方法返回的所有子视图的大小与 xib 中设置的相同。
使用下面的代码在视图上应用阴影:-
// Below method return correct size of view_margin (UIView) after content update in xcode 12 , but in xcode 13 below method return view_margin size same as size define in xib means not update size based on content
// Below method is tableview cell method
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:self.view_margin.bounds];
self.view_margin.layer.shadowColor = [UIColor blackColor].CGColor;
self.view_margin.layer.shadowOffset = CGSizeMake(0.0, 2.0);
self.view_margin.layer.shadowOpacity = 0.2;
self.view_margin.layer.shadowPath = shadowPath.CGPath;
self.view_margin.layer.masksToBounds = NO;
}
此问题仅在 xcode 11 和 iOS 13 中出现
【问题讨论】:
-
这在 ios 13 之前的版本中是否有效?如果在 IOS 13 之后视图的层次结构可能发生了变化,您将不得不遍历子视图,然后设置属性
-
@AnjulaS。是的,在 iOS 13 之前它可以正常工作。如果您有任何链接或代码,请帮助我。
-
@AnjulaS。您对上述问题有任何解决方案吗?请尽快帮助我。
-
你能告诉我你现在在哪里使用
setSelected吗? -
@AnjulaS。我已经更新了我的问题。请检查一下。
标签: ios uitableview uibezierpath ios13 xcode11