在 iOS 13 和 xcode 11 中,tableview 单元格的“setSelected”方法不返回完美的单元格大小
Posted
技术标签:
【中文标题】在 iOS 13 和 xcode 11 中,tableview 单元格的“setSelected”方法不返回完美的单元格大小【英文标题】:"setSelected" method of tableview cell not return perfect size of cell in iOS 13 and xcode 11 【发布时间】: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。我已经更新了我的问题。请检查一下。
【参考方案1】:
试试这个:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void)
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;
);
【讨论】:
以上是关于在 iOS 13 和 xcode 11 中,tableview 单元格的“setSelected”方法不返回完美的单元格大小的主要内容,如果未能解决你的问题,请参考以下文章
iOS 13:带有 LeftView 间距问题的 UITextField - Xcode 11
iOS 13 和 Xcode 11 中的配置文件问题中缺少 NFC 标签协议
我的问题是我无法在 ios 13 和 xcode 11 中发出任何网络请求
在 iOS 13 和 xcode 11 中,tableview 单元格的“setSelected”方法不返回完美的单元格大小