精华内容
下载资源
问答
  • ios uiview 设置边框
    2020-11-06 20:00:53
     view.layer.cornerRadius = 3
     view.layer.borderColor = UIColor.gray.cgColor
     view.layer.borderWidth = 1
    

    参考博客:
    iOS 如何给UIView 添加边框

    更多相关内容
  • 主要介绍了iOS应用开发中UIView添加边框颜色及设置圆角边框的方法,代码基于传统的Objective-C,需要的朋友可以参考下
  • IOS设置UIView边框为圆角  iOS 系统自带的 View 组件都是正方形的,看起来都太生硬,有时候我需要变成圆角形式,如下图:  具体的实现是使用QuartzCore库,下面我具体的描述一下实现过程:  • 首先创建一...
  • 本文将带你了解IOS开发入门iOS应用开发中UIView添加边框颜色及设置圆角边框的方法,希望本文对大家学IOS有所帮助。UIView边框边框颜色引用库:复制代码代码如下:#import使用:复制代码代码如下://添加边框和提示...

    本文将带你了解IOS开发入门iOS应用开发中UIView添加边框颜色及设置圆角边框的方法,希望本文对大家学IOS有所帮助。

    UIView加边框及边框颜色

    引用库:

    复制代码 代码如下:

    #import 

    使用:

    复制代码 代码如下:

    //添加边框和提示

    CGRect frameRect = CGRectMake(20, 90, self.window.frame.size.width-40, self.window.frame.size.height-180);

    UIView   *frameView = [[UIView alloc] initWithFrame:frameRect] ;

    frameView.layer.borderWidth = 1;

    frameView.layer.borderColor = [[UIColor whiteColor] CGColor];

    设置UIView的边框为圆角

    在实际的应用中,总感觉圆角的东西比较好看, 像button,label,image等等,以前的时候我就经常给那些控件添加一个UIImageView作为背景,再搞张圆角的图片,不过今天发现了新方法看代码

    复制代码 代码如下:

    viewT.layer.cornerRadius = 10;//设置那个圆角的有多圆

    viewT.layer.borderWidth = 10;//设置边框的宽度,当然可以不要

    viewT.layer.borderColor = [[UIColor redColor] CGColor];//设置边框的颜色

    viewT.layer.masksToBounds = YES;//设为NO去试试

    其实的viewT是UIView的实例,当然也可以是他的子类实例哈。

    最后别忘记添加QuartzCore.framework这个库,还有在你的文件中包含#import 这句哦

    本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!

    展开全文
  • ios - 在UIView外部添加边框(而不是在内部)如果使用视图中的代码添加视图的边框self.layer.borderColor = [UIColor yellowColor].CGColor;self.layer.borderWidth = 2.0f;边框添加到视图内部,如下所示:右视图是...

    ios - 在UIView外部添加边框(而不是在内部)

    如果使用视图中的代码添加视图的边框

    self.layer.borderColor = [UIColor yellowColor].CGColor;

    self.layer.borderWidth = 2.0f;

    边框添加到视图内部,如下所示:

    右视图是原始视图,如您所见,边界视图的黑色区域小于原始视图。 但我想得到的是原始视图之外的边框,如下所示:

    。 黑色区域等于原始区域,我该如何实现呢?

    remykits asked 2019-06-17T08:58:06Z

    7个解决方案

    92 votes

    不幸的是,您可以设置一个小的属性来将边框与外部对齐。 它绘制与内部对齐,因为UIViews默认绘制操作在其边界内绘制。

    想到的最简单的解决方案是在应用边框时按边框宽度的大小扩展UIView:

    CGFloat borderWidth = 2.0f;

    self.frame = CGRectInset(self.frame, -borderWidth, -borderWidth);

    self.layer.borderColor = [UIColor yellowColor].CGColor;

    self.layer.borderWidth = borderWidth;

    Elliott James Perry answered 2019-06-17T08:58:28Z

    17 votes

    好的,已经有一个已接受的答案,但我认为有一个更好的方法,你只需要一个比你的视图大一点的新图层,不要将它掩盖到视图层的边界(实际上是 默认行为)。 以下是示例代码:

    CALayer * externalBorder = [CALayer layer];

    externalBorder.frame = CGRectMake(-1, -1, myView.frame.size.width+2, myView.frame.size.height+2);

    externalBorder.borderColor = [UIColor blackColor].CGColor;

    externalBorder.borderWidth = 1.0;

    [myView.layer addSublayer:externalBorder];

    myView.layer.masksToBounds = NO;

    当然,如果你想要你的边框是1团大,如果你想要更多,你相应地适应borderWidth和图层的框架。这比使用稍大一点的第二个视图更好,因为CALayer比UIView轻,并且你没有修改myView的帧,这是好的,例如myView是aUIImageView

    N.B:对我来说,结果在模拟器上并不完美(图层并不完全在正确的位置,因此有时候一侧的图层厚一些)但正是在真实设备上要求的。

    编辑

    其实我在N.B谈到的问题只是因为我减少了模拟器的屏幕,在正常尺寸上绝对没有问题

    希望能帮助到你

    Hugues Duvillier answered 2019-06-17T08:59:23Z

    13 votes

    那么没有直接的方法来做到这一点您可以考虑一些变通方法。

    更改并增加框架并添加bordercolor

    在当前视图后面添加一个较大的视图,使其显示为边框。可以作为自定义视图类

    如果你不需要一个明确的边界(clearcut border),那么你可以依靠阴影来达到目的

    [view1 setBackgroundColor:[UIColor blackColor]];

    UIColor *color = [UIColor yellowColor];

    view1.layer.shadowColor = [color CGColor];

    view1.layer.shadowRadius = 10.0f;

    view1.layer.shadowOpacity = 1;

    view1.layer.shadowOffset = CGSizeZero;

    view1.layer.masksToBounds = NO;

    Lithu T.V answered 2019-06-17T09:00:18Z

    10 votes

    通过以上公认的最佳答案,我使用了不太好的结果和难看的边缘经验:

    所以我将与你分享我的UIView Swift扩展,它使用UIBezierPath作为边框轮廓 - 没有难看的边缘(灵感来自@Fattie):

    // UIView+BezierPathBorder.swift

    import UIKit

    extension UIView {

    fileprivate var bezierPathIdentifier:String { return "bezierPathBorderLayer" }

    fileprivate var bezierPathBorder:CAShapeLayer? {

    return (self.layer.sublayers?.filter({ (layer) -> Bool in

    return layer.name == self.bezierPathIdentifier && (layer as? CAShapeLayer) != nil

    }) as? [CAShapeLayer])?.first

    }

    func bezierPathBorder(_ color:UIColor = .white, width:CGFloat = 1) {

    var border = self.bezierPathBorder

    let path = UIBezierPath(roundedRect: self.bounds, cornerRadius:self.layer.cornerRadius)

    let mask = CAShapeLayer()

    mask.path = path.cgPath

    self.layer.mask = mask

    if (border == nil) {

    border = CAShapeLayer()

    border!.name = self.bezierPathIdentifier

    self.layer.addSublayer(border!)

    }

    border!.frame = self.bounds

    let pathUsingCorrectInsetIfAny =

    UIBezierPath(roundedRect: border!.bounds, cornerRadius:self.layer.cornerRadius)

    border!.path = pathUsingCorrectInsetIfAny.cgPath

    border!.fillColor = UIColor.clear.cgColor

    border!.strokeColor = color.cgColor

    border!.lineWidth = width * 2

    }

    func removeBezierPathBorder() {

    self.layer.mask = nil

    self.bezierPathBorder?.removeFromSuperlayer()

    }

    }

    例:

    let view = UIView(frame: CGRect(x: 20, y: 20, width: 100, height: 100))

    view.layer.cornerRadius = view.frame.width / 2

    view.backgroundColor = .red

    //add white 2 pixel border outline

    view.bezierPathBorder(.white, width: 2)

    //remove border outline (optional)

    view.removeBezierPathBorder()

    Peter Kreinz answered 2019-06-17T09:00:55Z

    7 votes

    对于Swift实现,您可以将其添加为UIView扩展。

    extension UIView {

    struct Constants {

    static let ExternalBorderName = "externalBorder"

    }

    func addExternalBorder(borderWidth: CGFloat = 2.0, borderColor: UIColor = UIColor.whiteColor()) -> CALayer {

    let externalBorder = CALayer()

    externalBorder.frame = CGRectMake(-borderWidth, -borderWidth, frame.size.width + 2 * borderWidth, frame.size.height + 2 * borderWidth)

    externalBorder.borderColor = borderColor.CGColor

    externalBorder.borderWidth = borderWidth

    externalBorder.name = Constants.ExternalBorderName

    layer.insertSublayer(externalBorder, atIndex: 0)

    layer.masksToBounds = false

    return externalBorder

    }

    func removeExternalBorders() {

    layer.sublayers?.filter() { $0.name == Constants.ExternalBorderName }.forEach() {

    $0.removeFromSuperlayer()

    }

    }

    func removeExternalBorder(externalBorder: CALayer) {

    guard externalBorder.name == Constants.ExternalBorderName else { return }

    externalBorder.removeFromSuperlayer()

    }

    }

    picciano answered 2019-06-17T09:01:21Z

    2 votes

    在添加边框之前,使用边框宽度增加视图框架的宽度和高度:

    float borderWidth = 2.0f

    CGRect frame = self.frame;

    frame.width += borderWidth;

    frame.height += borderWidth;

    self.layer.borderColor = [UIColor yellowColor].CGColor;

    self.layer.borderWidth = 2.0f;

    Hossam Ghareeb answered 2019-06-17T09:01:48Z

    0 votes

    我喜欢@picciano的解决方案如果你想爆炸圆而不是方形替换addExternalBorder函数:

    func addExternalBorder(borderWidth: CGFloat = 2.0, borderColor: UIColor = UIColor.white) {

    let externalBorder = CALayer()

    externalBorder.frame = CGRect(x: -borderWidth, y: -borderWidth, width: frame.size.width + 2 * borderWidth, height: frame.size.height + 2 * borderWidth)

    externalBorder.borderColor = borderColor.cgColor

    externalBorder.borderWidth = borderWidth

    externalBorder.cornerRadius = (frame.size.width + 2 * borderWidth) / 2

    externalBorder.name = Constants.ExternalBorderName

    layer.insertSublayer(externalBorder, at: 0)

    layer.masksToBounds = false

    }

    Maksim Kniazev answered 2019-06-17T09:02:14Z

    展开全文
  • extension UIView{ /* width:虚线的宽度 length:虚线的长度 space:虚线间的间距 cornerRadius:view圆角 color:虚线的颜色 */ func swiftDrawBoardDottedLine(width:CGFloat, length:CGFloat,space:...

    看代码

     extension UIView{
        
        /*
         width:虚线的宽度
         length:虚线的长度
         space:虚线间的间距
         cornerRadius:view圆角
         color:虚线的颜色
         */
        func swiftDrawBoardDottedLine(width:CGFloat,
                                      length:CGFloat,space:CGFloat,cornerRadius:CGFloat,color:UIColor){
              self.layer.cornerRadius = cornerRadius
              let borderLayer =  CAShapeLayer()
              borderLayer.bounds = self.bounds
              
              borderLayer.position = CGPoint(x: self.bounds.midX, y: self.bounds.midY);
              borderLayer.path = UIBezierPath(roundedRect: borderLayer.bounds, cornerRadius: cornerRadius).cgPath
              borderLayer.lineWidth = width / UIScreen.main.scale
              
              //虚线边框---小边框的长度
              borderLayer.lineDashPattern = [length,space]  as [NSNumber]? //前边是虚线的长度,后边是虚线之间空隙的长度
              borderLayer.lineDashPhase = 0.1
              //实线边框
              
              borderLayer.fillColor = UIColor.clear.cgColor
              borderLayer.strokeColor = color.cgColor
              self.layer.addSublayer(borderLayer)
         }
    }
    

    使用

      override func viewDidLoad() {
            super.viewDidLoad()
            view.backgroundColor = .brown
            let v = UIView.init(frame: CGRect.init(x: 100, y:200 , width: 240, height: 80))
            v.backgroundColor = .gray
            v.swiftDrawBoardDottedLine(width: 3,length: 7, space: 4, cornerRadius: 8, color: .white)
            view.addSubview(v)
        }
    

    效果图如下:
    在这里插入图片描述

    展开全文
  • iOS 设置UIView边框和阴影

    千次阅读 2014-09-20 10:57:31
    设置UIView边框和阴影其实很简单,UIView
  • iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIV
  • 效果图: 主要类: VariableRoundedBorderView.h #import <...typedef NS_OPTIONS(NSUInteger, BorderDirection) {//需要显示的边框方向 BorderDirectionLeft = 1 << 0, BorderDire...
  • - (void)awakeFromNib { [superawakeFromNib]; self.layer.borderColor=[[UIColorgrayColor]CGColor]; self.layer.borderWidth=1; } 如果给cell 里的控件加圆角 则 要加上 XXX.layer.maskToBouds=yes;......
  • iOS UIView设置圆角

    2019-10-07 23:45:32
    UIView设置圆角 1、比较简单的情况,UIView四个角都是圆角: UIView *aView = [[UIView alloc] init]; aView.frame = CGRectMake(0, 0, 300, 200); aView.backgroundColor = [UIColor redColor]; ....
  • - (void)setBorderWithView:(UIView *)view top:(BOOL)top left:(BOOL)left bottom:(BOOL)bottom right:(BOOL)right borderColor:(UIColor *)color borderWidth:(CGFloat)width{if (top) {CALayer *layer = [CALayer...
  • IOS设置UIView边框为圆角

    千次阅读 2015-03-26 18:34:51
    iOS 系统自带的 View 组件都是正方形的,看起来都太生硬,有时候我需要变成圆角形式,如下图:   具体的实现是使用QuartzCore库,下面我具体的描述一下实现过程:  • 首先创建一个项目,名字叫:ipad_...
  • 带有虚线或实线边框iOS UIView。 您可以直接在项目中使用 LBorderView 类文件,也可以按照以下步骤克隆 repo 并将其用作项目中的静态库。 作为静态库集成到您的项目中 克隆 LBorderView git 存储库,例如 git ...
  • iOS UIView控件

    2020-11-11 13:50:39
    UIView* redView1 = [[UIView alloc] initWithFrame:CGRectMake(40, 100, 100, 100)]; redView1.backgroundColor = [UIColor redColor]; [self.view addSubview:redView1]; UIView* blueView1 = [[UIView alloc] ...
  • extension UIView {enum BorderPosition: Int {case topcase bottomcase leftcase right}/// 圆角边框/// - Parameters:/// - maskedCorners: 圆角位置/// - cornerRadius: 圆角大小/// - borderColor: 边框颜色/// ...
  • 废话不多说,直接上代码 1、 layer.cornerRadius Number类型 2、 layer.masksToBounds Boolean类型 ...我是通过添加一个CALayer的类扩展实现的,将key Path中设置的UIColor转换成为CGColor,为边
  • iosUIView设置阴影

    2014-05-05 12:52:22
    _imageView1.layer.shadowColor = [UIColor yellowColor].CGColor;//shadowColor阴影颜色 _imageView1.layer.shadowOffset = CGSizeMake(0,0);... //设置阴影路径 _imageView1.layer.shadowPath = path.CGPath;
  • These properties are present for every UIView, since every view is actually drawn using an underlying CALayer object owned by the UIView. You can do a lot without even knowing aboutCALayers ...
  • 本文通过实例代码给大家详细介绍了iOS UIView常见属性方法,非常不错,需要的朋友参考下吧
  • UIView的阴影设置主要通过UIView的layer的相关属性来设置阴影的颜色imgView.layer.shadowColor = [UIColor blackColor].CGColor;阴影的透明度imgView.layer.shadowOpacity = 0.8f;阴影的圆角imgView.layer....
  • 在开发中我们经常会遇到对一个UIView 设置四个圆角的情况,这种情况是很好处理的。但是如果遇到只设置其中的某几个圆角的情况怎么办呢?有一种方法是通过UIBezierPath的方法来做,代码如下: /** * 设置uiview 的...
  • ios UIView 常用设置

    2018-12-27 11:25:58
    文章目录IOS UIView常用设置UIView设置背景图片的方式 IOS UIView常用设置 UIView设置背景图片的方式 一 . 设置UIView的背景图片 1.将图片作为UIView的背景色,该方法过于占内存,不建议使用。 //1.imageNamed...
  • In this post, I’ll explain how to add a border, rounded corners, and drop shadow to any UIView using some simple CALayerproperties. I’m not a CALayer guru, but these few tricks from the layer world ...
  • 需要设置UIView的圆角和边框等操作时,我们就会使用view.layer,即CALayer,那么两者之间到底有什么关系呢? UIViewiOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它...
  • 通过该类可以任意为UIView/UIButton等控件添加某条边的边框,包括边框大小和颜色

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,307
精华内容 2,522
关键字:

ios uiview 设置边框