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

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

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

问候

【问题讨论】:

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

标签: ios objective-c cocoa-touch uiview uipickerview


【解决方案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】:

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

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

    【讨论】:

    • 我在搜索过程中遇到了这个问题,但它对我不起作用。我用 filterPicker.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;它从来没有对我有用。
    • 如果你在代码中设置了掩码,你是否也触发了布局更新。我在某处读到它仅在视图再次布局时才有效?
    猜你喜欢
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多