问题标签 [autoresizingmask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 以编程方式自动调整掩码与 Interface Builder / xib / nib
我有一个(可能是错误的)假设,即在 xib 中启用右边距指示器等同于使用UIViewAutoresizingFlexibleLeftMargin
内部代码等。
所以,我曾经根据这张快照思考过:
今天晚些时候,我不得不交叉检查,偶然发现了这个线程。
还有苹果文档,标题为“使用自动调整规则自动处理布局更改”的部分:https ://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/创建视图.html
所以我现在有了一个新的概念,即以编程方式设置自动调整大小的掩码如何等同于 xib 设置:
场景1:仅设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)
相当于:
在西布?
场景2:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)
代码中的设置等价于:
在西布?
我的 2 个更新的场景是否正确?我现在在我的理解中吗?
iphone - 为什么 layoutSubviews 在设置框架时不会自动在视图上调用?
我有一个看法。它是一个庞大而复杂的项目的一部分。设置我的视图框架后,不会自动调用 layoutSubviews。
玩弄这个,我尝试将以下方法放入我的视图中:
在这一点上,正如预期的那样,在设置框架时重做布局。如果我注释掉 setNeedsLayout 行,布局就没有完成。此外,当我在调用 super 的那一行单击“进入”时,调试器不会进入任何内容。据我所知,super 的 setFrame 方法没有被覆盖。
FWIW,我还做了一个小测试项目,在其中更改了视图的框架。在这种情况下,当我这样做时调用了 layoutSubviews。[我的测试项目中没有调用setNeedsLayout。]所以我的大项目中的某些东西正在改变行为。但我不知道那是什么东西。
谁能解释可能发生的事情?
编辑:澄清一下,我的框架变化正在改变视图的高度。宽度没有改变。
iphone - 将 NavigationBarHidden 设置为 NO 不会正确调整视图的大小 iPhone/ipad
我有一个简单的问题,真的让我发疯。
我有一个导航控制器,根视图控制器是一个 VC,它有一个视图,应该在不显示导航栏的情况下呈现。为了实现这一点,我在 rootVC 内部的方法中将bar的navigationBarHidden
属性设置为。navigationController
YES
-viewWillAppear:
为了再次显示它,我在-viewWillDisappear:
rootVC 的方法中将相同的属性设置为 NO。
如果我向视图询问其 frame.size,它将正确回答 320 宽度和 460 高度。当我推动另一个视图(我可以看到导航栏出现)时,如果我询问视图的大小,它说我是 320x460,这个错误应该告诉我类似 320x416 的信息。
如果我现在推送另一个视图并询问它的大小,我会得到正确的大小 320x416。如果现在我弹出按回,我会再次获得正确的尺寸。
事实是导航栏与“中间”视图重叠了 44 个点,除了硬编码它的大小并且我不想要之外,我无法将其设置为正确的大小。
IB 阻止了视图自动调整掩码,因为它是文件的所有者之一。状态栏样式是不透明的。
你对我有什么提示吗?
THX,安德里亚
objective-c - 自动调整大小的蒙版如何工作?
我找到了很多关于自动调整大小的信息,但没有一个能够解决我的问题。我有一个 ViewController (RAViewController),它在其 loadView 方法中调用一个视图,如下所示:
它调用的视图 (RAView) 如下所示:
由于某种原因,当设备为横向时,我无法获得自动调整大小的掩码来调整按钮宽度。任何帮助是极大的赞赏。
iphone - autoresizingMask 没有正确响应
我已经非常成功地在我的项目的所有视图中实现了自动调整掩码。但是在最后一个,即设置中,tableCells 中有很多滑块,似乎效果不太好。:
我确定我已经正确实施了
滑块和标签的灵活左边距。
当旋转发生时,我还实现了表重新加载。
单元格可以重复使用,或者至少在纵向模式下它们可以工作,但是当我旋转并返回时,我得到了你在图片中看到的内容。
关于我缺少什么的任何想法?
提前谢谢!
ios - 固定两个方向上的对象之间的空间
我正在使用 AutoresizingMask 以编程方式定义相对位置。我得到了几乎所有的工作,但我不知道如何在两个元素之间保持相同的分隔(UIButton,UILabel 由 20px 分隔)这就是我所拥有的:
UIButton , 定位在 (100, 100), 大小: 60x30, autoresizingMask=UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin
UILabel,定位在 (180,100),大小:50x50,autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin
我的问题是,当方向改变时,我无法在这两个元素之间保持 20px 的边距。
ios - 如何设置我的 UITableViewCell 子类的子视图以使用自动调整大小的蒙版?
我正在尝试为我的 iOS 应用程序实现一个网格(想想 .NET 的 DataGridView)。我正在使用带有自定义 UITableViewCell 子类的 UITableView,其中我有几个标签代表该行的每一列数据。我的问题与在设备方向更改后调整这些标签的宽度有关。我基本上想按比例调整它们的大小,例如,在纵向占据网格宽度 1/3 的列在切换到横向时仍将占据宽度的 1/3。
现在我通过覆盖- (void)layoutSubviews
我的 UITableViewCell 子类的方法来实现这一点;我基本上只是硬编码 iPad 和 iPhone 横向与纵向的比例。但是,这仅在网格本身根据方向更改按比例调整大小时才有效,当然并非总是如此。
为了实现在任何情况下都可以使用的解决方案,我考虑过self.bounds.size.width
在 layoutSubviews 方法中使用,但似乎自动调整掩码是更好的解决方案。如果我将每个 UILabel 的掩码设置为,UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleLeftMargin | UIViewAutoResizingFlexibleRightMargin
那么我应该实现我正在寻找的缩放类型。但是,我想不通的是如何设置每个标签的初始帧。如果在调用 layoutSubviews 之前我不知道单元格的起始边界,我该如何安排我的子视图开始?
iphone - UITableViewCell autoresizingmask issue
I have 3 UI elements in the contentView
of the UITableViewCell
that need to be aligned properly when the device rotates. Currently, I enforce the frames of these UI Elements like this:
I would like to know how I can use the autoresizingMask property of these elements to make them resize and not-overlap on one another when the device is rotated from Landscape to portrait (default is portrait, iPad only). I do not want to have custom frame positions for each orientation.
I tried something like this:
But this doesn't seem to work. The elements are all overlapped and unhappily laid out.
Any suggestions?
UPDATE 1
Here's what the table view cell currently looks like in landscape mode:
And here's what I want when the device is rotated to a portrait mode:
UPDATE 2 Here's my code in cellForRowAtIndexPath incorporating suggestions from @Wolfert
ios5 - iOS 5 Autoresizingmask 问题
我在使用 Xcode Interface Builder(最后一个可用版本)和他的用于 iPad 应用程序的 Autoresizing Mask 时遇到了问题。
我有这些视图,哪些框架都是通过 IB 设置的,因为我想编写尽可能少的代码:
- BannerAnteprime(UIScrollView),x:0,y:0,宽度:768,高度:480。
- CentralToolbar (UIToolbar), x: 0, y: 480, width: 768, height: 44 (默认不可编辑)
- BannerVideo(UIScrollView),x:0,y:522,宽度:768,高度:480。
应用程序支持旋转,所以当用户旋转到横向或纵向时,我希望视图自动调整大小,但是,无论我做什么,我都没有得到希望的结果,我已经打印了用户旋转设备时的框架,这就是我得到的:
如您所见,尺寸和位置有问题。滚动视图的掩码配置为:
http://www.issamtp.org/ScrollViews.png
而对于工具栏:
http://www.issamtp.org/Toolbar.png
这些使我得到了我能得到的最正确的结果,即:
http://www.issamtp.org/portrait.png肖像和:
(来源:issamtp.org)
景观。
我哪里错了?
objective-c - 在桌面项目上使用 autosizing 或 autoresizingMask 不好吗?
作为一个有点熟练的 iOS 开发人员,我刚刚开始在 Cocoa 中开发一个桌面 OSX 项目,我遇到了一些我无法理解的问题。所以这个问题是针对 OSX 开发人员的。
我不太喜欢 Interface Builder,所以我倾向于用代码编写我的视图。我编写视图布局代码的最突出的方法是视图控制器的loadView
方法,至少在 iOS 上,我对所有内容都使用autoresizingMask
s。尝试小视图、大视图、旋转横向和纵向视图,如果一切都很好,我将继续列表中的下一个项目。现在在桌面上,autoresizingMask
作品(或只是看起来)有点不同。首先,属性有不同的名称,但它们的行为似乎也很奇怪或出乎意料。
当我遇到下面的问题时,我认为这一定是我的代码错了,所以在尝试了足够长的时间后,为了确认,我用 Interface Builder 重新创建了它,你猜怎么着:我得到了完全相同的结果。使用四个垂直堆叠的子视图进行视图。将中间的两个设置为具有灵活的高度,外部的要固定。当您运行它时,将其缩小并再次备份,我在调整大小之前和之后得到两个完全不同的布局。见图片:
现在我可以从运行循环之间的数学角度理解为什么会发生这种情况,但是从“自动调整大小”或“自动调整大小”功能的角度来看,这绝对没有意义。
在我尝试在这里写出所有调整大小的主题之前,我可以问你这些问题吗?如果您觉得它添加到帖子中,请随意详细说明调整大小的主题。
- 难道我不想在桌面项目上使用 Interface Builder 是个傻瓜吗?
autoresizingMask
我应该比iOS项目依赖更少吗?- 在没有 Interface Builder 的情况下,确保您的布局符合标准有哪些不错的替代方案?
干杯!