首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xcode 5自动布局视图扩展,但不是视图的内容

xcode 5自动布局视图扩展,但不是视图的内容
EN

Stack Overflow用户
提问于 2014-09-24 00:37:37
回答 2查看 108关注 0票数 0

在Xcode 5 OSX,而不是ios中,我创建了一个视图并设置了自动布局约束,以便视图的两侧与框架保持固定的距离。视图通过在运行时拖动窗口的角来正确扩展,但是视图的内容在大小上仍然是固定的。内容由Bezier路径组成。缩小可以裁剪内容,扩展在不变的内容旁边提供了大量的开放空间。

我还注意到,在窗口的大小检查器中,更改窗口的小彩色窗口中的初始位置并不会在运行时更改窗口在屏幕上的位置。它出现在与上次运行时相同的位置。大小也保持不变。然后可以在屏幕上移动和调整大小,并在下一次运行时显示在那里。

如何使内容与视图和窗口一起缩小或膨胀?

如何使窗口的大小检查器控制屏幕上的初始位置?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 18:19:28

@JeremyP:谢谢你的指导。

这就是起作用的地方。如果有趣的话,这段代码和我的评论可以在code @lists.apple.com,9/29/2014 8:35下午8:35看到,关于使用格雷厄姆·考克斯的大纲的成功。包括这一切都将是冗长的,可能会造成混乱。

代码语言:javascript
复制
// scale the content to track the frame

{
NSBezierPath *path;
NSRect bounds;
CGFloat scaleX,scaleY;
}


   scaleX =NSWidth(bounds)/NSWidth([path bounds]);
   scaleY =NSHeight(bounds)/NSHeight([path bounds]);


   NSAffineTransform* tfm = [[NSAffineTransform alloc] init];
   [tfm scaleXBy:scaleX yBy:scaleY];
   NSBezierPath* temp  = [tfm transformBezierPath:path];

   //   [tfm concat];

   [temp stroke];
票数 0
EN

Stack Overflow用户

发布于 2014-09-24 02:02:09

您大概可以用代码绘制视图的内容。你可以选择做任何你想做的事。如果希望视图的纵横比以某种方式更改绘图,请将该逻辑合并到代码中。

您还可以将视图的bounds rect设置为与其frame rect不同。一旦设置了界限,它们就不再自动与帧保持同步。因此,从边界到帧的转换不再是1到1的映射.当您更改框架时,并且考虑到边界不会改变以跟踪它,映射将有效地缩放视图的内容。

决定界限由你来决定。例如,您可以将其设置为单元rect (原名为(0,0),大小为1x1)。显然,您需要在绘图代码中说明坐标系统。

视图编程指南:视图几何

至于窗口大小:您已经为您的窗口设置了自动保存名。这样做的全部目的是保存窗口的位置,并在下次显示窗口时恢复它。如果不想要这种行为,就不要设置(即清除)窗口的自动保存名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26006747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档