Метод setSelected ячейки табличного представления не возвращает идеальный размер ячейки в iOS 13 и xcode 11 - PullRequest
0 голосов
/ 08 октября 2019

На самом деле у меня есть, чтобы применить тень на вид внутри ячейки таблицы. Высота этого представления является динамической (в зависимости от содержимого), что означает, что ячейка табличного представления является ячейкой собственного размера. До iOS 13 и xcode 11 мой код работал отлично, поскольку метод setSelected элемента tableview cell возвращает идеальный размер всех подпредставлений ячейки. В iOS 13 и xcode 11, метод 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

1 Ответ

0 голосов
/ 18 октября 2019

попробуйте это:

- (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;

    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...