我在IB中设置的NSView中有一个NSImageView。 NSImageView 与 NSView 的大小完全相同。
一切正常,调整窗口大小时 NSImageView 与 NSView 具有相同的大小。
但是,现在我已经向 NSImageView 添加了一个动画(从 A 移动到 B),这会弄乱 IB 中设置的约束。所以我必须以编程方式执行此操作。
如何以编程方式设置 NSLayoutConstraint 以使 NSImageView 与 NSImageView ( super View )具有相同的大小?
更新:
只是为了给大家提供更多信息。我的应用程序使用分割 View (三个 View ),我现在以编程方式添加它,而不是在 IB 中添加 NSImageView。我将新 View (应可扩展到其父 View )添加到 Split View中的第三个 View 。
您认为分割 View 导致了这些问题吗?
更新2:
好的,我已经快要解决这个问题了。我从 View 中删除了 NSImageView,并添加了一个 NSView。 NSView 缩放得很好,但是一旦我添加了 NSImageView,它就停止工作,因为调整窗口大小后 NSImageView 不会缩放。
换句话来说,问题出在NSImageView本身。调整窗口大小后它不会缩放...
已解决
我通过使用 PDF View 而不是 ImageView 解决了这个问题(这是我想显示的 PDF)。我在 PDF View 上将 autoScales 属性设置为 YES。
最佳答案
我假设您已经引用了以下示例中的 View :
NSView * parentView;
NSImageView * imageView;
[imageView setTranslatesAutoresizingMaskIntoConstraints:NO]; //Required to opt-in to autolayout
[parentView addSubview:imageView]; //Subview must exist before adding constraint.
NSDictionary * views = NSDictionaryOfVariableBindings(imageView);
[parentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|"
options:0
metrics:nil
views:views]];
[parentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|"
options:0
metrics:nil
views:views]];
关于cocoa - NSView 中的自动布局 NSImageView - 缩放大小。以编程方式设置 NSLayoutConstraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935851/