如何在Cocoa本地绘制高光和非四边形边框?
一个例子是下图。顶部有一个小的1px白色内边框,底部有一个灰色的1px内边框。仅在视图的顶部和底部也有深灰色边框。
这可以原生吗?或者这需要图像吗?
答案 0 :(得分:3)
获取内边框的快捷方法是使用您想要镶边的视图中的图层阴影属性(注意-1,它将边框放在边缘内):
myView.layer.shadowOpacity = 1.0;
myView.layer.shadowColor = [UIColor blackColor].CGColor;
myView.layer.shadowOffset = CGSizeMake( 0, -1 );
否则,您可以对视图进行子类化,并在drawRect:method中添加类似的内容:
[super drawRect: rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState( context );
CGContextSetStrokeColorWithColor( context, [UIColor blackColor].CGColor );
CGContextSetLineWidth( context, 1.0 );
CGContextMoveToPoint( context, 0, 0 );
CGContextAddLineToPoint( context, self.bounds.size.width, 0 );
CGContextStrokePath( context );
CGContextRestoreGState( context );