在 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 捕捉到它所在的父视图的底部?的主要内容,如果未能解决你的问题,请参考以下文章