菜鸟教程小白 发表于 2022-12-13 04:05:57

ios - UIPickerView 动画隐藏和显示失败


                                            <p><p>我的接口(interface)文件中有这个:</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface ViewController : UIViewController
    &lt;UIPickerViewDataSource, UIPickerViewDataSource&gt;

// PickerView Array
@property (strong, nonatomic) NSArray *pickerNames;
@property (strong, nonatomic) NSArray *pickerValues;   
@property (strong, nonatomic) IBOutlet UIPickerView *picker;

- (IBAction)buttonSelectPicker;

@end
</code></pre>

<p>我的实现文件中有这个:</p>

<pre><code>- (void)viewDidLoad
{
    ;

    // PickerView Array
    _pickerNames = @[@&#34;Data1&#34;, @&#34;Data2&#34;, @&#34;Data3&#34;, @&#34;Data4&#34;, @&#34;Data5&#34;];
    _pickerValues = @[@&#34;val1&#34;, @&#34;val2&#34;, @&#34;val3&#34;, @&#34;val4&#34;, @&#34;val5&#34;];
    _picker.frame = CGRectMake(0, 1000, 320, 216);
}
</code></pre>

<p>所有这些代码现在都可以在我的 iPod (iOS 6.1.3) 上完美运行,但实际上我想做更多的事情时遇到问题......它们是......</p>

<ol>
<li><p>第一次加载应用时,UIPickerView 被隐藏(在屏幕区域之外)。我尝试通过添加这一行(在 <code>viewDidLoad</code> 上)但它不起作用。</p>

<p><code>_picker.frame = CGRectMake(0, 1000, 320, 216);</code></p></li>
<li><p>然后当用户点击 <code>buttonSelectPicker</code> 按钮时,UIPickerView 就会出现。这行代码也不起作用:</p>

<p><code>- (IBAction)buttonSelectPicker {
;
    ;
    _pickerviewContainer.frame = CGRectMake(0, 289, 320, 216);
    ;
}</code></p></li>
<li><p>当用户点击 UIPickerView 区域外的任何地方时,它会隐藏 UIPickerView。我有这段代码可以关闭键盘,但我不知道如何修改以关闭 UIPickerView :</p>

<p><code>- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UIView * txt in self.view.subviews){
      if (]) {
            ;
      }
    }
}</code></p></li>
</ol>

<p>谢谢...</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您基本上是在重新创建 <code>inputView</code> 所做的事情。 UIKit 允许你定义任何自定义输入法,不仅仅是键盘,因此,你可以放置一个 <code>UITextField</code>,并设置 <code>inputView</code> 如下:</p>

<pre><code>UIPickerView *picker = [ initWithFrame:CGRectMake(0, 0, 320, 162)];

picker.dataSource = self;
picker.delegate = self;

self.textField.inputView = picker;
</code></pre>

<p>(选择器也可以从 Nib 加载)</p>

<p>然后你使用普通的方法来处理文本字段</p>

<pre><code>// Show keyboard/picker


// Dismiss keyboard/picker

</code></pre>

<p>当文本字段成为第一响应者时,将显示选择器而不是键盘。我不知道这是否适合您的需求,但请考虑将其作为一种替代的、更清洁的方式。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIPickerView 动画隐藏和显示失败,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18778674/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18778674/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIPickerView 动画隐藏和显示失败