小编Sta*_*yer的帖子

带有角半径和阴影视图的 UIView 不会在角中剪切子视图

下面是自定义卡片视图的代码。问题是,当我在界面构建器中将子视图添加到此时,它不会将角半径应用于子视图。在大多数情况下,我可以通过使子视图具有清晰的背景颜色来解决这个问题,但我正在努力使用UIImageView. 当我将它添加到卡片时,它最终会出现尖角,而且我无法修复它。

这里的各种解决方案都建议添加第二层来显示阴影。我已经尝试过,但它仍然无法按预期工作。我想要实现的是带有圆角的视图,阴影和添加任何子视图(例如UIImageView)也应该保持圆角半径而不是指出。

我已经尝试了各种设置,layer.masksToBounds并且self.clipsToBounds我似乎总是得到带有圆角半径的子视图,但没有阴影或阴影可见且视图没有剪裁。

@IBDesignable class CardView: UIView {

    @IBInspectable dynamic var cornerRadius: CGFloat = 6
    @IBInspectable dynamic var shadowOffsetWidth: Int = 2
    @IBInspectable dynamic var shadowOffsetHeight: Int = 2
    @IBInspectable dynamic var shadowColor: UIColor? = UIColor(netHex: 0x333333)
    @IBInspectable dynamic var shadowOpacity: Float = 0.5

    override init(frame: CGRect) {
        super.init(frame: frame)
        commonInit()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    override func layoutSubviews() {
        commonInit()
    }

    override func prepareForInterfaceBuilder() {
        commonInit() …
Run Code Online (Sandbox Code Playgroud)

uiview dropshadow swift

8
推荐指数
1
解决办法
4148
查看次数

.previewLayout(PreviewLayout.fixed(width:_,height:_)) 在 Xcode 14 中不起作用

自从更新到 Xcode 14 以来,SwiftUI 画布的行为有所不同。

我有固定大小的文件,我试图通过添加来预览它们

.previewLayout(PreviewLayout.fixed(width: width,height: height))

到预览视图。

以前的行为是我会看到画布的预期宽度。现在我可以在设备中看到预览。

有什么办法可以让它再次按预期工作吗?

swiftui xcode14

5
推荐指数
1
解决办法
1479
查看次数

尝试编写一个通用函数,用于将JSON解析为可编码的Structs

我正在解析像这样的JSON

struct ExampleStruct : Codable {
     init() {

     }
     // implementation
}

if let jsonData = jsonString.data(using: .utf8) {
    do {
        let decoder = JSONDecoder()
        let object =  try decoder.decode(ExampleStruct.self, from: jsonData)
    } catch {
        print("Coding error - \(error)")
    }
}
Run Code Online (Sandbox Code Playgroud)

这很好,但是我一直试图在周末学习泛型.我正在尝试编写一个方法,我传入一个Codable结构类型和一个JSON字符串,它返回我想要的类型的对象.

我尝试过以下方法: -

func getType<T>(_ anyType: T.Type, from jsonString:String) -> T? {

if let jsonData = jsonString.data(using: .utf8) {
    do {
        let decoder = JSONDecoder()
        let object =  try decoder.decode(anyType, from: jsonData)//Errors here
        return object as? T
        return nil …
Run Code Online (Sandbox Code Playgroud)

generics swift codable

0
推荐指数
1
解决办法
616
查看次数

标签 统计

swift ×2

codable ×1

dropshadow ×1

generics ×1

swiftui ×1

uiview ×1

xcode14 ×1