在UIView上画一条很细的线

时间:2014-03-19 07:42:46

标签: ios objective-c ios7 uiview

所以我在我的应用程序顶部得到了UIView,我想在它的底部画一条细线,这是一条非常相似的线,作为UITableView中的分隔线。我目前在IB中设置了高度为1px的UIView,但是当我将该行与UITableView中的分隔符进行比较时,它的高度更高。有没有什么好方法可以在UIView内画一条细线?

3 个答案:

答案 0 :(得分:9)

为您的热线视图框架height(或width0.5并将backgroundColor设置为[UIColor lightGrayColor]

编辑:对于非视网膜,您可以将身高/宽度更改为(1.0 / [UIScreen mainScreen].scale)

这将导致视网膜上的0.5和非视网膜显示上的1.0。

答案 1 :(得分:3)

只需插入UIView

#import <QuartzCore/QuartzCore.h>

并在drawRect:内添加此内容并指定行的高度

- (void)drawRect:(CGRect)rect{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0f);
    //start at this point
    CGContextMoveToPoint(context, 0, self.frame.size.height);
    //draw to this point
    CGContextAddLineToPoint(context,
                            self.frame.size.width,
                            self.frame.size.height);
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
    // and now draw the Path!
    CGContextStrokePath(context);

}

你会得到像这里的红线一样的线

enter image description here

答案 2 :(得分:2)

试试看你的观点。此代码将为您的视图绘制一个2px红色边框。

#import <QuartzCore/QuartzCore.h>添加到您的视图中。

CALayer *bottomBorder = [CALayer layer];
bottomBorder.frame = CGRectMake(0.0f, myview.frame.size.height - 2, myview.frame.size.width, 2.0f);
bottomBorder.backgroundColor = [UIColor redColor].CGColor;
[myview.layer addSublayer:bottomBorder];