直接上代码
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
}