- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个主视图填满整个屏幕的应用程序。这个主视图包含您可以认为是 Sprite 的 subview 。他们使用自己的代码四处游荡。他们四处游荡的逻辑可能会让他们游荡在屏幕之外。我想要做的是调整主视图的大小,以便它包含所有 subview 。不过,真正改变的不是 View 大小。正在改变的是缩放比例。有点像缩小谷歌地图 View 。我怎么做?触发它的将是一个手势识别器。
最佳答案
您应该使用三级 View 层次结构来执行此操作:
设置缩放 View 的边界以包含所有 Sprite View 的框架。然后设置缩放 View 的变换,使其适合顶层 View 。
- (void)updateBoundsAndTransformOfView:(UIView *)scaledView {
CGRect scaledBounds = CGRectNull;
for (UIView *spriteView in scaledView.subviews) {
scaledBounds = CGRectUnion(scaledBounds, spriteView.frame);
}
scaledView.bounds = scaledBounds;
// Now scaledView's size is large enough to contain all of its subviews,
// and scaledView's coordinate system origin is at the left edge of the
// leftmost sprite and the top edge of the topmost sprite.
UIView *topLevelView = scaledView.superview;
CGRect topLevelBounds = topLevelView.bounds;
CGFloat xScale =topLevelBounds.size.width / scaledBounds.size.width;
CGFloat yScale = topLevelBounds.size.height / scaledBounds.size.height;
CGFloat scale = MIN(xScale, yScale);
scaledView.transform = CGAffineTransformMakeScale(scale, scale);
scaledView.center = CGPointMake(CGRectGetMidX(topLevelBounds), CGRectGetMidY(topLevelBounds));
}
关于ios - 我应该使用什么而不是 sizeToFit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663309/
我正在开发一个主视图填满整个屏幕的应用程序。这个主视图包含您可以认为是 Sprite 的 subview 。他们使用自己的代码四处游荡。他们四处游荡的逻辑可能会让他们游荡在屏幕之外。我想要做的是调整主
我刚刚遇到了奇怪的问题,我有一个具有动态高度的自定义表格 View 单元格。虽然测试这一切似乎工作正常,但现在我将真实内容加载到其中似乎存在一些问题。 某些文本似乎不会触发 UILabel 中的新行
我有一个应用程序,用户可以随意添加我所说的调色板。项目 (UIViews) 可以从一个调色板拖动到另一个调色板。我以为我可以使用 sizeToFit 方法在添加项目或删除项目时自动调整调色板的大小,但
我正在为 Storyboard View 创建这些标签。我将自动布局设置为“关闭”,并将行数设置为 0,但仅当我注释掉 sizeToFit 时才会显示文本。当然,当文本高度大于 40 时,文本就会被截
我的 ASTextNod 通常需要 3 行,但我从第二行截断了它。结果:我的 ASTextNod 显示 2 行和 3 个截断点,但他的高度是 3 行的高度而不是 2。 我正在寻找类似于 ASTextN
我有一个观点: label1 和label2 之间存在布局约束。按下按钮将 TextView 中的文本添加到 label1。在调整标签 1 的大小以适合文本后(调用 sizeToFit)。调整大小后,
我正在尝试以编程方式操作 UILabel 以使其具有动态宽度。 我发现使用 sizeToFit() 确实可以做到这一点。现在这个标签变成了我的 navigationItem.titleView。我希望
每当后端数据库发生变化时,我都会执行一段代码。本质上,我在父 View 中有一个标签。标签由许多状态消息之一更新,每个状态消息都在不同的行上,以新行 (\n) 结尾。每条状态消息只需要在一行上并且不能
我有时会看到类似这样的代码: NSArray *segmentedControl = [NSArray arrayWithObjects:@"First", @"Second", @"Third",
我有一个自定义的 UITableViewCell,在 Storyboard 上有一个 UILabel。我动态设置此 UILabel 的文本,并且需要相应地调整 UILabel 的宽度,因为在它之后我还
我在 NSTextField 上的 sizeToFit 方法上遇到了一个奇怪的问题。 我有一个 NSView,我正在其中创建一个 CALayer 和一个 NSTextField。我使用 sizeToF
是否有任何简单的方法可以帮助我使用内容大小动态更改依赖 View 的位置? 我想在列中显示多个 View ,这些 View 都有不同的内容。我希望它们被一个接一个地放置(我已经使用如下所示的约束创建了
所以我正在使用 iOS 6 制作一个应用程序,并且想知道为什么我的代码曾经在 iOS 5 上运行良好,但现在不再运行了。我有一个带有动态 UILabel 的单元格,它会根据它所携带的文本进行调整。 这
这是我的代码: let button_video = UIButton(type: .custom) button_video.frame = CGRect.zero if subsession.Vi
属性文本设置为 UILabel。 let label = UILabel() label.frame = view.frame label.numberOfLines = 0 do { let
我以编程方式创建标签。它总是有两条线。不过,这两行的字体大小会改变。因此,标签的高度和宽度必须改变。我尝试使用 sizeToFit 来做到这一点。然而,第二个词(“Day”)仅部分显示。这个词的底部被
我想在指定行数后以编程方式创建一个 UILabel。我正在使用 swift 。我有以下代码: let newLabel = UILabel() newLabel.text = "Hello There
我已经配置了一个测试 Playground ,其中包含 UITableView 和 UIStackView 实例作为其 header 。 stackView 包含 10 个 UILabel。 问题是,
任何人都能够突出显示为什么在下面的代码中需要“[aLabel sizeToFit]”行,摘自 here . 也就是说,创建的 CGRect 已经根据文本字体大小调整了大小,那么为什么还需要 sizeT
我正在尝试使用函数 sizeToFit。它在整个应用程序中完美运行,但在下面的代码中不起作用。此外,如果无法按照我的方式完成,请提出建议。 self.label = [[UIL
我是一名优秀的程序员,十分优秀!