- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Cocoa 绘制形状的反射。我已经应用了 NSAffineTransform 并成功重新绘制了形状,但现在我不知道如何在其上绘制 alpha 蒙版。我正在使用 NSCompositeDestinationOut
操作,但它给了我一个不需要的结果:alt text http://img687.imageshack.us/img687/2417/capturedcran20100623094.png
我不太确定如何解决这个问题 - 我需要将其设置为,以便渐变仅充当 Alpha mask ,而不实际显示。我使用了错误的合成模式吗?
谢谢!如果需要的话,这是渐变代码:
- (void)fadeOutRect:(NSRect)rect {
[NSGraphicsContext saveGraphicsState];
[[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeDestinationOut];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[[NSColor blackColor] colorWithAlphaComponent:0.5], 0.0,
[[NSColor blackColor] colorWithAlphaComponent:1.0], 0.8, nil];
[gradient drawInRect:NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - ( PILL_HEIGHT * 2 ),
rect.size.width, PILL_HEIGHT) angle:270];
[NSGraphicsContext restoreGraphicsState];
}
最佳答案
是的。这是我们用来执行此操作的代码示例。它使用源图像,并且在比例因子方面有一些有趣的业务,但是您应该能够使用基本结构和合成选择来完成您需要的操作。 (此代码位于 [reflectionImage lockFocus] block 内,self 是我们要对其进行反射的 NSImage。)
// Draw our mask into the image
NSGradient* fade = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithCalibratedWhite:1.0 alpha:0.5]
endingColor:[NSColor clearColor]];
[fade drawFromPoint:NSMakePoint(0.0, size.height)
toPoint:NSMakePoint(0.0, 0.0)
options:0];
// Composite the original image, upside-down
NSAffineTransform* flipper = [NSAffineTransform transform];
[flipper scaleXBy:1.0 yBy:-1.0];
[flipper concat];
[self drawInRect:NSMakeRect(0.0, -1.0*size.height, size.width, size.height)
fromRect:NSMakeRect(0.0, 0.0, self.size.width, size.height / scaleFactor)
operation:NSCompositeSourceIn fraction:1.0];
关于Cocoa:使用 NSGradient 作为在其下方绘图的 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3103699/
我正在创建一个必须在 Tiger 上运行的应用程序,并且我需要在 NSView 上绘制渐变。不幸的是,NSGradient 仅适用于 Leopard 及以上版本。谷歌根本不是我的 friend 。如何
是否有一个与- (void)drawInBezierPath:(NSBezierPath *)path angle:(CGFloat)angle等效的iOS设备? 我需要在UIBezierPath内绘
简单地说:是否可以在单个 NSView 上的两个 NSGradient“填充”之间淡入淡出?例如。绘制一个渐变并淡入淡出以绘制下一个渐变。 最佳答案 我最终对 NSView 进行了子类化;从中获取 N
好吧,长话短说: 我正在使用(嵌入到 bundle 中)FontAwesome 我将它用作一些自定义 NSButton 中的字体 在 NSButton 子类中,我想为它们着色,就像 Xcode 选项卡
是否可以将 NSGradient 转换为 NSColor - (void) viewWillDraw { NSGradient *grad = [[NSGradient alloc] init
我的应用程序中有一个 nsscroll View ,我创建了 nsscrollview 的子类来添加 nsgradient,但它不起作用,这是我的实现文件中的代码: #import "scrollvi
我正在尝试使用 Cocoa 绘制形状的反射。我已经应用了 NSAffineTransform 并成功重新绘制了形状,但现在我不知道如何在其上绘制 alpha 蒙版。我正在使用 NSCompositeD
我有一组 NSColor 和一组 CGFloat 表示梯度停止。我不知道如何使用这些数组来初始化 NSGradient。 我尝试将它们制作成一个 (NSColor, CGFloat) 数组,但是 NS
我有一个函数,可以使用传递给它的 NSColor 绘制特定区域。为了给它一种 3D 外观,我需要用给定颜色的渐变来绘制它。假设 NSColor 是 blueColor 那么该区域应该用 lightBl
我是 cocoa 新手,我尝试将 NSGradient 设置为 NSWindow 背景,但这对我来说太难了......我已经尝试过这段代码 NSGradient *gradient = [[NSGra
我制作了一个自定义框,它是 NSBox 的子类。我重写 drawRect: 方法并在其中绘制渐变,如下所示(假设我已经有 start 和 end 颜色): -(void)drawRect:(NSRec
我非常熟悉想要复制属性与保留属性的原因。 (本质上是值与关系参数。例如,您几乎总是想要复制字符串。) NSColor 和 NSGradient 怎么样? 它们都符合 NSCopying,但按照目前的实
我正在使用 NSGradient 来处理一些东西,有时我需要添加/更改/删除颜色。现在据我所知,NSGradient 是不可变的,所以我知道如何做到这一点的唯一方法是创建一个新的渐变并在过程中更改颜色
我正在自定义 View 上绘制一个 NSGradient ,如下所示: - (void)drawRect: (NSRect)dirtyRect { NSGradient* g = [[NSGr
AppKit 在 iOS 中不可用,所以我正在寻找替代品。 具体来说,我正在寻找一种替代方法: - (NSColor *)interpolatedColorAtLocation: (CGFloat)l
我正在寻找一个扩展,以便在 Swift 中使用 Cocoa (macOS) 从 NSGradient 对象创建 NSImage。 最佳答案 这是在 Swift 5 中执行此操作的方法: extensi
我是一名优秀的程序员,十分优秀!