[iOS]创建单一像素的分割线

直接上代码

Object-C :

/**
 *  生产一个 1像素的线
 *
 *  @param origin     线的起始位置(传入的点后面不要带小数)
 *  @param length     线的长度
 *  @param isVertical 线的方向是否是垂直的
 *  @param color      线的颜色
 *
 *  @return 返回这根线
 */
- (UIView *)productSimplePixelLineViewWithOrigin:(CGPoint)origin length:(CGFloat)length isVertical:(BOOL)isVertical color:(UIColor *)color {
    CGFloat width = 1/[UIScreen mainScreen].scale;
    CGFloat offset = ((1/[UIScreen mainScreen].scale)/2);
    
    UIView *view;
    if (isVertical) {   // 垂直的线
        view = [[UIView alloc] initWithFrame:CGRectMake(ceil(origin.x) - offset, origin.y, width, length)];
    }
    else {  // 水平的线
        view = [[UIView alloc] initWithFrame:CGRectMake(origin.x, ceil(origin.y) - offset, length, width)];
    }
    view.backgroundColor = color;
    return view;
}



Swift : 

/**
生产一个 1像素的线

:param: origin     线的起始位置(传入的点后面不要带小数)
:param: length     线的长度
:param: isVertical 线的方向是否是垂直的(默认是垂直的)
:param: color      线的颜色(默认是UITableViewCell 的分割线的颜色)

:returns: <span style="font-family: Arial, Helvetica, sans-serif;">返回这根线</span>
*/
func productSimplePixelLineView(origin: CGPoint, length: CGFloat, isVertical: Bool = true, color: UIColor = UIColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1.0)) -> UIView {
    let width = 1/UIScreen.mainScreen().scale
    let offset = ((1/UIScreen.mainScreen().scale)/2);
    
    let view = { () -> UIView in
        if isVertical {
            return UIView(frame: CGRect(x: ceil(origin.x) - offset, y: origin.y, width: width, height: length))
        }
        else {
            return UIView(frame: CGRect(x: origin.x, y: ceil(origin.y) - offset, width: length, height: width))
        }
    }()
    view.backgroundColor = color
    return view
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值