Я разместил UIView с помощью SnapKit, и мне нужно найти способ добавить тень. Поскольку я расположил представление относительно других UIView, у меня нет высоты, ширины или начальной координаты представления. Как я могу добавить тень к этому UIView, расположенному с использованием автоматического макета SnapKit. Код для позиционирования UIView таков:
tableViewBackground.snp.makeConstraints{ (make) -> Void in
make.width.lessThanOrEqualToSuperview()
make.height.lessThanOrEqualToSuperview()
make.right.equalToSuperview().offset(-20)
make.left.equalToSuperview().offset(20)
make.bottom.equalToSuperview().offset(-20)
make.top.equalTo(poiLabel.snp.bottom).offset(20)
}
layer
, как и любую другую тень вида? - person matt   schedule 19.04.2017tableViewBackground.layer.shadowPath = UIBezierPath(rect: tableViewBackground.bounds).cgPath
. Проблема в том, чтоtableViewBackground.bounds
равно [0,0,0,0], потому что представление позиционируется с помощью snapkit. - person KevinZ   schedule 19.04.2017viewDidLayoutSubviews
, вероятно, самый ранний достоверный момент. Но будьте осторожны, потому что он может вызываться много раз впоследствии. - person matt   schedule 19.04.2017