界面生成器中的 iOS 阴影视图
Posted
技术标签:
【中文标题】界面生成器中的 iOS 阴影视图【英文标题】:iOS shadow view in interface builder 【发布时间】:2018-05-21 02:23:42 【问题描述】:我正在尝试通过界面生成器为某些视图添加阴影。我似乎无法让阴影影响我的观点。我查看的所有资源都指向相同的代码,所以我不确定我做错了什么。
界面生成器
接口生成器扩展代码
import Foundation
import UIKit
extension UIView
//cut irrelevant code for SO Question
@IBInspectable
var masksToBounds: Bool
get
return layer.masksToBounds
set
layer.masksToBounds = newValue
// Shadow handling
@IBInspectable
var shadowColor: UIColor?
get
if let color = layer.shadowColor
return UIColor(cgColor: color)
return nil
set
if let color = newValue
layer.shadowColor = color.cgColor
else
layer.shadowColor = nil
@IBInspectable
var shadowOpacity: Float
get
return layer.opacity
set
layer.opacity = newValue
@IBInspectable
var shadowRadius: CGFloat
get
return layer.shadowRadius
set
layer.shadowRadius = newValue
@IBInspectable
var shadowOffset: CGSize
get
return layer.shadowOffset
set
layer.shadowOffset = newValue
视图布局
这是结果
【问题讨论】:
500 点对于阴影半径来说太大了。你试过用 5 代替吗? @TylerTheCompiler 是的,5 和 500 产生相同的结果 【参考方案1】:您的shadowOpacity
属性访问了错误的图层属性。当它应该是layer.shadowOpacity
时,它正在访问layer.opacity
。此外,您的 shadowRadius
太大了,应该是 5 左右(当然取决于您的目标),而不是 500。
【讨论】:
【参考方案2】:我猜这是您添加阴影的自定义搜索栏。我猜它不可见的原因是因为您在控制器和情节提要中的视图都相同大小。尝试使情节提要视图中有一个容器视图,并在情节提要视图中添加一些填充,并将该阴影添加到该容器视图中。这可能会显示一些结果。
【讨论】:
以上是关于界面生成器中的 iOS 阴影视图的主要内容,如果未能解决你的问题,请参考以下文章
具有拐角半径和阴影视图的 UIView 不会在拐角处剪辑子视图