如果使用视图中的代码添加视图的边框
self.layer.borderColor = [UIColor yellowColor].CGColor;
self.layer.borderWidth = 2.0f;
Run Code Online (Sandbox Code Playgroud)
边框添加到视图内部,如下所示:

右视图是原始视图,如您所见,边界视图的黑色区域小于原始视图.但我想得到的是原始视图之外的边框,如下所示:
.黑色区域等于原始区域,我该如何实现呢?
我正在尝试创建一个带圆角和投影的按钮.无论我如何切换,按钮都无法正确显示.我试过masksToBounds = false和masksToBounds = true,但无论是圆角半径工程和影子不或影子工程和圆角半径不夹按钮的角落.
import UIKit
import QuartzCore
@IBDesignable
class Button : UIButton
{
@IBInspectable var masksToBounds: Bool = false {didSet{updateLayerProperties()}}
@IBInspectable var cornerRadius : CGFloat = 0 {didSet{updateLayerProperties()}}
@IBInspectable var borderWidth : CGFloat = 0 {didSet{updateLayerProperties()}}
@IBInspectable var borderColor : UIColor = UIColor.clearColor() {didSet{updateLayerProperties()}}
@IBInspectable var shadowColor : UIColor = UIColor.clearColor() {didSet{updateLayerProperties()}}
@IBInspectable var shadowOpacity: CGFloat = 0 {didSet{updateLayerProperties()}}
@IBInspectable var shadowRadius : CGFloat = 0 {didSet{updateLayerProperties()}}
@IBInspectable var shadowOffset …Run Code Online (Sandbox Code Playgroud) 通过使用[UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:],我可以创建一个圆形视图,如下所示:

我怎样才能从这一个(或其他方式)中减去另一条路径,以创建这样的路径:

我有什么方法可以做这样的事情吗?伪代码:
UIBezierPath *bigMaskPath = [UIBezierPath bezierPathWithRoundedRect:bigView.bounds
byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)
cornerRadii:CGSizeMake(18, 18)];
UIBezierPath *smallMaskPath = [UIBezierPath bezierPathWithRoundedRect:smalLView.bounds
byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)
cornerRadii:CGSizeMake(18, 18)];
UIBezierPath *finalPath = [UIBezierPath pathBySubtractingPath:smallMaskPath fromPath:bigMaskPath];
Run Code Online (Sandbox Code Playgroud) 我需要在swift中创建一个只有两个圆角的矩形(Objective C代码也可以).
目前我的代码正在创建两个矩形
CGPathCreateWithRoundedRect(CGRectMake(0, 0, 30, 60), 5, 5, nil);
Run Code Online (Sandbox Code Playgroud)
和
CGPathCreateWithRoundedRect(CGRectMake(0, 0, 30, 60), 0, 0, nil);
Run Code Online (Sandbox Code Playgroud)
合并它们(有两个直角和两个圆角)但我对代码不满意,我很确定应该有更好的方法来做到这一点.
我是iOS和图形开发的新手.
有没有办法让SKSpriteNode圆形走投无路?我正在尝试用颜色填充的SKSpriteNode创建一个Tile likesqaure块:
SKSpriteNode *tile = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithRed:0.0/255.0
green:128.0/255.0
blue:255.0/255.0
alpha:1.0] size:CGSizeMake(30, 30)];
Run Code Online (Sandbox Code Playgroud)
如何围绕走投无路?
谢谢!
我试图创建一个ImageView圆角和阴影给它一些深度.我能够为它创建一个阴影UIImageView,但每当我添加代码也使它有圆角时,它只有圆角而没有阴影.我有一个IBOutlet名字myImage,它在viewDidLoad函数内部.有没有人对如何使其有效有任何想法?我究竟做错了什么?
override func viewDidLoad() {
super.ViewDidLoad()
myImage.layer.shadowColor = UIColor.black.cgColor
myImage.layer.shadowOpacity = 1
myImage.layer.shadowOffset = CGSize.zero
myImage.layer.shadowRadius = 10
myImage.layer.shadowPath = UIBezierPath(rect: myImage.bounds).cgPath
myImage.layer.shouldRasterize = false
myImage.layer.cornerRadius = 10
myImage.clipsToBounds = true
}
Run Code Online (Sandbox Code Playgroud) 我想在 UIView 和 Swift3、iOS 的阴影层中“切一个洞”
我有一个容器 (UIView),它有 2 个孩子:
我想给叠加一个阴影并切出该阴影的内部矩形,以在 ImageView 的边缘创建类似发光的效果
插入发光至关重要,因为图像占用了屏幕宽度
我的代码迄今为止:
let glowView = UIView(frame: CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight))
glowView.layer.shadowPath = UIBezierPath(roundedRect: container.bounds, cornerRadius: 4.0).cgPath
glowView.layer.shouldRasterize = true
glowView.layer.rasterizationScale = UIScreen.main.scale
glowView.layer.shadowOffset = CGSize(width: 1.0, height: 1.0)
glowView.layer.shadowOpacity = 0.4
container.addSubview(imageView)
container.addSubview(glowView)
Run Code Online (Sandbox Code Playgroud)
结果如下所示:
现在我想剪掉较暗的内部部分,以便只保留边缘的阴影
任何想法如何实现?
ios ×6
swift ×4
shadow ×3
iphone ×2
objective-c ×2
uiview ×2
border ×1
calayer ×1
cornerradius ×1
sprite-kit ×1
swift3 ×1
uibezierpath ×1
uiimageview ×1
xcode6 ×1