Как применить вид карты cornerRadius и shadow, как iOS appstore в swift 4 - PullRequest
0 голосов
/ 29 июня 2018

Я хочу применить " cornerRadius " и представление карты " shadow " в своей ячейке представления коллекции, такой как магазин приложений iOS сегодня. View.

CardView shadow example 1

iOS appstore today view

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Чтобы добавить замечательный ответ @oyvindhauge, убедитесь, что ни одно из подпредставлений внутри myView не простирается до краев. Например, мое представление карты содержало представление таблицы, которое заполняет карту - поэтому необходимо также установить tableView.layer.cornerRadius = 20.0. Это относится к любому подпредставлению, которое заполняет карточку.

0 голосов
/ 09 апреля 2019

Создайте новый подкласс UIView с именем «CardView», как показано ниже:

import Foundation
import UIKit

@IBDesignable
class CardView: UIView {

    @IBInspectable var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.shadowRadius = newValue
            layer.masksToBounds = false
        }
    }

    @IBInspectable var shadowOpacity: Float {
        get {
            return layer.shadowOpacity
        }
        set {
            layer.shadowOpacity = newValue
            layer.shadowColor = UIColor.darkGray.cgColor
        }
    }

    @IBInspectable var shadowOffset: CGSize {
        get {
            return layer.shadowOffset
        }
        set {
            layer.shadowOffset = newValue
            layer.shadowColor = UIColor.black.cgColor
            layer.masksToBounds = false
        }
    }

}

Затем просто установите «CardView» в качестве пользовательского класса для вашего представления из XCode Interface Builder. Это просто и легко настраивается!

0 голосов
/ 29 июня 2018

Просто добавьте подпредставление в ячейку и управляйте ее свойством слоя. Настройте значения по своему вкусу. Следующий код должен дать результат, аналогичный тому, как он выглядит в App Store:

    // The subview inside the collection view cell
    myView.layer.cornerRadius = 20.0
    myView.layer.shadowColor = UIColor.gray.cgColor
    myView.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
    myView.layer.shadowRadius = 12.0
    myView.layer.shadowOpacity = 0.7

enter image description here

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