带圆角的 UIToolbar

发布于 2024-09-08 03:51:56 字数 77 浏览 4 评论 0原文

我想显示一个顶部带有圆角的 UIToolbar ,最简单的方法是什么?工具栏未在窗口上对齐;它周围都有边距。谢谢!

I want to display a UIToolbar with rounded corners on top, what would be the easiest way? the toolbar is not top-aligned on the window; it has a margin all around. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟凡古楼 2024-09-15 03:51:56

很简单。

首先 - 在视图控制器的 .h 文件中有一个 UIToolbar 的 IBOutlet 变量。
例如。

@interface TextFormattedViewController : UIViewController {
     IBOutlet UIToolbar *tBar;
}

现在,在视图控制器文件的 .m 文件中,只需放置以下代码 &它会对你产生魔力。但是,如果有任何疑问,请添加评论。

#import "TextFormattedViewController.h"
#import <QuartzCore/QuartzCore.h>
@implementation TextFormattedViewController
- (void)viewDidLoad {
    // following statement is must.
    tBar.clipsToBounds=YES;
    CALayer *l=tBar.layer;
    // set corner radious
    [l setCornerRadius:10];
    // to apply border on corners
    [l setBorderColor:[[UIColor redColor] CGColor]];
    // to apply set border width.
    [l setBorderWidth:5.0];
}

Very simple.

First of all - have an IBOutlet variable of UIToolbar in your .h file of your view controller.
For example.

@interface TextFormattedViewController : UIViewController {
     IBOutlet UIToolbar *tBar;
}

Now in your .m file of your view controller file just place following code & it will work as a magic for you. However- please add comment if any queries.

#import "TextFormattedViewController.h"
#import <QuartzCore/QuartzCore.h>
@implementation TextFormattedViewController
- (void)viewDidLoad {
    // following statement is must.
    tBar.clipsToBounds=YES;
    CALayer *l=tBar.layer;
    // set corner radious
    [l setCornerRadius:10];
    // to apply border on corners
    [l setBorderColor:[[UIColor redColor] CGColor]];
    // to apply set border width.
    [l setBorderWidth:5.0];
}
情痴 2024-09-15 03:51:56

圆化视图角的最简单方法是使用CALayercornerRadius(和masksToBounds)属性。但是,这样您只能选择将所有角均等地圆化。要使用该属性,您可以将 UIToolbar 放入另一个比工具栏高的视图中,这样只有顶部是圆形的。如果另一个视图有圆角底角,这会很有效。

将视图屏蔽为任意形状的最简单方法是将 CALayermask 属性设置为新的 CAShapeLayer。在您的情况下,使用 CGPathAddLineToPointCGPathAddArcToPoint 或类似方法为 CAShapeLayer 构建 CGPath ,以仅获取顶角圆形。

The easiest way to round the corners of a view is with the cornerRadius (and masksToBounds) property of CALayer. However, with that you only have the option of rounding all the corners equally. To use that property, you could put the UIToolbar into another view that was taller than the toolbar, so only the top was rounded. This would work well if another view will have rounded bottom corners.

The easiest way to mask a view to an arbitrary shape is to set the mask property of CALayer to a new CAShapeLayer. In your case, build a CGPath for the CAShapeLayer using CGPathAddLineToPoint and CGPathAddArcToPoint or similar to get only the top corners rounded.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文