Вот моя проблема. Я встроил в UIVIew UITableView с 3 строками. UITableView должен отображать падающую тень и иметь закругленные углы. Для этого я создал метод setShadowsForViews, который вызываю в ViewDidLoad.
- (void) setShadowsForViews: (UIView *)view{
view.backgroundColor = COLOR_WHITE;
view.layer.cornerRadius = 8.0;
view.layer.shadowColor = UIColor.blackColor.CGColor;
view.layer.shadowOpacity = 0.4;
view.layer.shadowRadius = 5;
view.layer.shadowOffset = CGSizeMake(5, 5);
}
Также внутри ViewDidLoad я вставил этот фрагмент кода:
self.tableView.clipsToBounds = NO;
self.tableView.layer.masksToBounds = NO;
Итак, теперь тень видна за пределами TableView.
Проблема в том, что при этом углы не скругляются, но TableView принимает форму основного содержимого (с острыми углами). Как я могу это исправить?
Вот скриншот:
«Должен показывать падающую тень и иметь закругленные углы» Нет. И того и другого быть не может. Если вы обрежете / замаскируете закругленный угол, вы обрежете тень. А если не обрезать, углы не закругляются.
Ответ @skaak - самый простой способ решить проблему. На самом деле, я не хотел добавлять столько просмотров, чтобы упростить проект, но, в конце концов, я думаю, что приму это решение.
Спасибо @matt за разъяснение концепции клипа / маски, которая сводила меня с ума. Спасибо вам всем.
Сделайте жизнь проще - поместите tableview в другой uiview, а затем вы можете формировать этот uiview так, как вам нравится.