使用drawInRect我得到的结果不一致
有时图像会正确绘制,有时图像看起来像半像素:
在左上方,您会看到滑块的上限图像绘制正常,然后填充具有模糊边缘,即使它们使用相同的x,y绘制...
// top cap
[topCap drawInRect:NSMakeRect(5, 5, 11, 7)
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1];
// background fill
[topFill drawInRect:NSMakeRect(5, 12, 11, (CGRectGetHeight(aRect) - 23))
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1];
左下箭头,情况相同。
中心右箭头,类似情况。您可以看到左帽图像正确渲染,然后背景填充(1px宽图像)变得模糊。我想知道它是否与拉伸图像有关,因为看起来我试图填充矩形的图像渲染效果不佳。
感谢您的任何见解。
答案 0 :(得分:0)
如果您知道为什么drawInRect会扭曲图像,请留下答案。以下是我找到解决这个问题的方法:
对于某些地区,我使用了colorWithPatternImage
NSColor* backgroundFill = [NSColor colorWithPatternImage:backgroundImage];
[backgroundFill set];
NSRectFill(background);
我遇到的问题是图案原点设置为窗口而不是视图,因此有时图案会不对齐。
对于我使用NSDrawThreePartImage
的几个区域,它正确地平铺了图像而不会扭曲图像。即使我没有3张图像,我只是将相同的图像放入3次。