绘制到NSBitmapImageRep时,NSLayoutConstraint的行为会有所不同

时间:2013-11-10 22:44:11

标签: objective-c macos cocoa nsview nslayoutconstraint

我在Github上有一个名为ITNavigationView的控件。

通过缓存并将其添加到NSView,可以顺畅地从一个NSImageView动画到另一个- (NSImage *)imageOfView:(NSView *)view { [view layoutSubtreeIfNeeded]; [view setNeedsUpdateConstraints:YES]; [view updateConstraintsForSubtreeIfNeeded]; NSBitmapImageRep* rep = [view bitmapImageRepForCachingDisplayInRect:view.bounds]; [view cacheDisplayInRect:view.bounds toBitmapImageRep:rep]; return [[NSImage alloc] initWithCGImage:[rep CGImage] size:view.bounds.size]; } 。 缓存视图时,以x轴为中心的子视图将向右拉1个像素。 如果我改为添加前导约束,则不会发生这种情况。

如何防止这种情况发生?

要缓存视图,我正在使用此代码:

{{1}}

修改

另外值得注意的是,只有在超级视图具有奇数宽度时才会发生这种情况。

0 个答案:

没有答案