Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xcode 5自动布局-视图拉伸,但不是视图的内容_Xcode_Autolayout - Fatal编程技术网

xcode 5自动布局-视图拉伸,但不是视图的内容

xcode 5自动布局-视图拉伸,但不是视图的内容,xcode,autolayout,Xcode,Autolayout,在Xcode 5 OSX(而不是ios)中,我创建了一个视图并设置了自动布局约束,以便视图的侧面与框架保持固定距离。运行时通过拖动窗口的角可以正确拉伸视图,但视图内容的大小保持不变。内容由贝塞尔路径组成。收缩可以裁剪内容,而扩展可以在不变的内容旁边提供大量的开放空间 我还注意到,在Size Inspector中更改窗口的小彩色窗口中的初始位置不会在运行窗口时更改窗口在屏幕上的位置。它显示在上次运行时留下的相同位置。规模也保持不变。然后可以在屏幕上移动它并调整其大小,它将在下次运行时显示在屏幕上

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

我还注意到,在Size Inspector中更改窗口的小彩色窗口中的初始位置不会在运行窗口时更改窗口在屏幕上的位置。它显示在上次运行时留下的相同位置。规模也保持不变。然后可以在屏幕上移动它并调整其大小,它将在下次运行时显示在屏幕上

如何使内容随视图和窗口一起收缩或膨胀

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


提前感谢。

您大概是在代码中绘制视图内容的。你可以选择你想怎么做就怎么做。如果希望通过视图的纵横比以某种方式更改图形,请将该逻辑合并到代码中

还可以将视图的边界矩形设置为不同于其帧矩形。设置边界后,它们将不再自动与帧保持同步。因此,从边界到帧的转换将不再是一对一的映射。当您更改帧时,如果边界不会更改以跟踪该帧,则映射将有效地缩放视图的内容

决定边界应该由你决定。例如,您可以将其设置为0,0,大小1x1的单位矩形原点。显然,您需要在图形代码中考虑坐标系


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

@JeremyP:谢谢您的指导

以下是有效的方法。如果有意思的话,可以在cocoa中看到这段代码和我的注释-dev@lists.apple.com,2014年9月29日晚上8:35,关于使用格雷厄姆·考克斯的提纲取得成功。把这些都包括在这里会很长,可能会引起混乱

// 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];

1.纵横比不是一个问题,也没有提到。很抱歉,我无法创建带有两个空格和返回的换行符。它只是关上了窗户,我必须重新打开它。我没有提到spect比率。这不是问题2。更改边界无法使内容跟踪帧大小。3.《视图编程指南》有助于设置视图,但不解决跟踪问题。此外,它没有提供使用仿射变换的明确示例。对方法定义的引用对我来说是不够的。4.autosave名称始终为空。请查看我在cocoa中的回复-dev@lists.apple.com今天,2014年9月29日下午8:35,关于成功使用格雷厄姆·考克斯的提纲。@jyrez如果你有答案,请你把它放在这里,供其他遇到同样问题的人参考。你可以回答自己的问题。