在 iOS 7/Objective-C 中,如何以编程方式将 UIPickerView 捕捉到它所在的父视图的底部?

Posted

技术标签:

【中文标题】在 iOS 7/Objective-C 中,如何以编程方式将 UIPickerView 捕捉到它所在的父视图的底部?【英文标题】:How do I programmatically snap a UIPickerView to the bottom of the parent view it resides in, in iOS 7/Objective-C? 【发布时间】:2014-04-12 23:20:12 【问题描述】:

所以我有 UICollectionViewController 并将 UIPickerView 添加到控制器视图。现在 UIPickerView 位于导航栏下方。

如何让它自动获取它所在视图的边界,无论是在 iPhone 4 还是 iPhone 5 上,并使用它来将 UIPickerView 捕捉到其父级的底部。

问候

【问题讨论】:

当你以这种方式添加选择器时,它会随着集合视图滚动吗? @rdelmar 选择器不会随着 collectionView 滚动。我将它添加到视图而不是连接到我的实际集合视图的 collectionView。 【参考方案1】:

最终奏效的是:

CGFloat viewHeight = [[self view] frame].size.height;
CGFloat pickerHeight;

UIPickerView *filterPicker = [[UIPickerView alloc] init];
pickerHeight = [filterPicker frame].size.height;
[filterPicker setFrame:CGRectMake(0, viewHeight - pickerHeight, self.view.bounds.size.width, pickerHeight)];
[[self view] addSubview:filterPicker];

【讨论】:

【参考方案2】:

您将需要查看选择器视图的支柱和弹簧。这在 *** 上有很多介绍。

autoresizing-masks-programmatically-vs-interfact-builder-xib

【讨论】:

我在搜索过程中遇到了这个问题,但它对我不起作用。我用 filterPicker.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;它从来没有对我有用。 如果你在代码中设置了掩码,你是否也触发了布局更新。我在某处读到它仅在视图再次布局时才有效?

以上是关于在 iOS 7/Objective-C 中,如何以编程方式将 UIPickerView 捕捉到它所在的父视图的底部?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中录制语音时如何以编程方式生成音频波形?

如何以编程方式在 iOS 11 中打开蓝牙设置

如何在 aws sns 中注册 iOS 设备令牌以接收推送通知?

如何以编程方式在 iOS 中添加图标覆盖?

如何在android中配置ble广告以供ios检测

如何以编程方式在 iOS 13 中隐藏和显示状态栏?