使用故事板时需要以编程方式调整子视图的大小?
Posted
技术标签:
【中文标题】使用故事板时需要以编程方式调整子视图的大小?【英文标题】:What is the need to resize subviews programmatically when using storyboards? 【发布时间】:2014-02-25 17:00:07 【问题描述】:我精通自定义视图。今天我开始使用故事板,但我无法说服自己使用故事板。
问题: - 我在情节提要中由 View Controller 设置。 - 在 4 英寸模拟器上运行,我很适合使用 Views 的布局。 - 在 3.5 英寸的模拟器上运行,我很沮丧,因为我的视图是部分可见的。
这里是屏幕截图。
我的 SotryBaord(查看“删除用户”按钮)。
删除用户按钮框架:
在 4 英寸模拟器上运行
在 4 英寸模拟器上运行(我有问题)
如何使用布局调整框架,使其在两种尺寸的 iPhone 中都能清晰运行。我的删除用户按钮不应该离开屏幕。
【问题讨论】:
你设置了自动布局吗? 是的,在 autoLayout 的名称上,我选中了复选框Use AutoLaout
。
您可能需要学习自动布局。这是一个非常好的自动布局教程。 raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
只需固定按钮和视图底部之间的距离。
【参考方案1】:
朋友,自动布局有点复杂,你需要花很多时间掌握它,但如果你想在几分钟内完成它,只需取消选中自动布局,选择每个 UI 元素并将其自动调整大小设置为这个。
您可以改变自动布局,只需点击此按钮即可查看更改
希望这会有所帮助并节省时间。
【讨论】:
【参考方案2】:非常好的问题。当我升级它们以支持 iphone 5 屏幕尺寸时,我遇到了与我的每个应用程序完全相同的问题。
我最终做的是禁用自动布局,但我仍然使用故事板来放置所有按钮、视图、图像等。我确保在放置所有项目时在故事板中使用 3.5 英寸。然后,我将这些 UILabel 或 UIButton 等连接到 IBoutLet,然后在我的 ViewDidLoad 中检查它的 iphone 4 与 iPhone 5 是否并相应地重新定位所有按钮。
例如。
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
// iPhone Classic
if(result.height == 568)
// iPhone 5 this is the offset I am using
int yInt = 50;
[blurSlider setFrame:CGRectMake(31, 406+yInt, 271, 34)];
[alphaSlider setFrame:CGRectMake(31, 447+yInt, 271, 34)];
[blurLabel setFrame:CGRectMake(33, 392+yInt, 71, 24)];
[alphaLabel setFrame:CGRectMake(33, 436+yInt, 71, 24)];
我可以在不使用故事板的情况下完成所有编码吗?我当然可以,但我发现故事板的视觉方面很吸引人,并且可以准确地看到屏幕上的所有内容。
【讨论】:
感谢您的回答,但我认为这很像自定义视图方法,我对此非常熟悉。有趣的是,我想知道使用故事板自动布局的好处。感谢您的帮助。以上是关于使用故事板时需要以编程方式调整子视图的大小?的主要内容,如果未能解决你的问题,请参考以下文章
故事板视图(iphone 4/5/6)影响集合单元大小的布局(以编程方式设置)