Решение Simple Swift 3.2 / 4, основанное на ответе Ade без каких-либо дополнительных подсмотров, подклассификации или дополнительного скриптинга:
extension UIView {
func addShadow(offset: CGSize, color: UIColor, radius: CGFloat, opacity: Float) {
layer.masksToBounds = false
layer.shadowOffset = offset
layer.shadowColor = color.cgColor
layer.shadowRadius = radius
layer.shadowOpacity = opacity
let backgroundCGColor = backgroundColor?.cgColor
backgroundColor = nil
layer.backgroundColor = backgroundCGColor
}
}
Обратите внимание, что вы должны настроить свое представление с помощью угла радиус и другие свойства перед вызовом addShadow
.
Вызвать это прямо из viewDidLoad
следующим образом:
btnBottom.addShadow(offset: CGSize.init(width: 0, height: 3), color: UIColor.black, radius: 2.0, opacity: 0.35)
Конечный результат:
Супер легко и просто!
Ваш цикл foreach может быть немного проще и производить то, что вы хотите
echo "<h1>Topics</h1>";
$sql = "SELECT * FROM categories WHERE parent = 1";
$result = $db -> getRows($sql,[]);
$numrows = $db -> getrows("SELECT count(*) FROM stories",[]);
if($numrows == 0) {
echo "<p>No categories</p>";
} else {
foreach($result as $row){
echo $row['category'] . "\n";
}
}