【问题标题】:Drawing borders and highlights natively in Cocoa在 Cocoa 中本地绘制边框和高光
【发布时间】:2012-08-30 22:21:37
【问题描述】:

如何在 Cocoa 中原生绘制高光和非 4 边边框?

下图就是一个例子。顶部有一个小的 1px 白色内边框,底部有一个灰色的 1px 内边框。仅在视图的顶部和底部还有一个深灰色边框。

这可以在本地完成吗?还是需要图片?

【问题讨论】:

    标签: objective-c ios macos nsview nsgradient


    【解决方案1】:

    获得内边框的一种快速方法是使用您想要加边框的视图中的图层阴影属性(注意 -1,它将边框放在边缘内):

    myView.layer.shadowOpacity = 1.0;
    myView.layer.shadowColor = [UIColor blackColor].CGColor;
    myView.layer.shadowOffset = CGSizeMake( 0, -1 );
    

    否则,您可以将视图子类化并在您的 drawRect: 方法中放置类似的内容:

    [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 );
    

    【讨论】:

    • 太棒了,知道如何在 Mac 上做同样的事情吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2012-02-26
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多