6

有谁知道如何制作圆角的可可片,如下图所示?

Xcode 4 圆角表

Xcode 4 表 - 圆角

我已经看遍了,但我似乎找不到任何东西。我不确定我是否在寻找错误的地方,或者这不是一种常见的做法。有任何想法吗?

4

2 回答 2

10

编辑:事实证明,如果您的目标是 OS X Lion 或更高版本,这种行为会更容易——只需调用[sheet setOpaque:NO]就足以启用圆角。


这种行为很容易重现。将您的工作表初始化为透明的无边框窗口:

self.sheet = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 300, 300) styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered | NSTitledWindowMask defer:YES];
[self.sheet setOpaque:NO];
[self.sheet setBackgroundColor:[NSColor clearColor]];

将自定义视图添加为子视图:

[[self.sheet contentView] addSubview:[[IFWindowView alloc] initWithFrame:[[self.sheet contentView] frame]]];

该自定义视图应按如下方式进行绘制:

#define RADIUS 5.0
NSBezierPath *bezierPath = [NSBezierPath bezierPathWithRoundedRect:NSMakeRect(self.bounds.origin.x, self.bounds.origin.y + RADIUS, self.bounds.size.width, self.bounds.size.height) xRadius:RADIUS yRadius:RADIUS];
[[NSColor windowBackgroundColor] set]; // In production, use the appropriate color with alpha for transparency.
[bezierPath fill];

下面是一些示例代码来演示这一点:http: //d.pr/l9DB

于 2012-04-04T02:15:46.843 回答
0

据我所知,这是窗口的一个属性。如果是面板,它有方角,如果是窗口,则有圆角。至少这就是在 Mac OS 下发生的事情——不能保证 iOS。

于 2012-04-04T01:43:17.393 回答