Iphone 如何增加选择器视图(转换的选择器视图)的宽度?

Iphone 如何增加选择器视图(转换的选择器视图)的宽度?,iphone,cocoa-touch,xcode,iphone-sdk-3.0,Iphone,Cocoa Touch,Xcode,Iphone Sdk 3.0,我试图水平滚动选取器视图,这是我的代码 在我看来,我是这样做的 CGRect frame = horizontalPickerView.frame; frame.size.width = 50; frame.size.height = 216; frame.origin.x=90; frame.origin.y = 200; horizontalPickerView.

我试图水平滚动选取器视图,这是我的代码

在我看来,我是这样做的

     CGRect frame = horizontalPickerView.frame;
            frame.size.width = 50;
            frame.size.height = 216;
            frame.origin.x=90;
            frame.origin.y = 200;
            horizontalPickerView.frame = frame;

            horizontalPickerView.transform = CGAffineTransformMakeRotation(3.14159/2); 






- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
        UILabel *lbl = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 30, 20)] autorelease];
        lbl.transform = CGAffineTransformMakeRotation(-3.14159/2);
        lbl.text = @"hi";
        return lbl;
    }
但问题是,如果我尝试这样做,我无法将选择器视图的宽度更改超过216.0,因为会留下黑色背景

这是正确的图像

现在如果我这样做

CGRect frame = horizontalPickerView.frame;
                frame.size.width = 50;
                frame.size.height = 300;
                frame.origin.x=120;
                frame.origin.y = 200;
                horizontalPickerView.frame = frame;

                horizontalPickerView.transform = CGAffineTransformMakeRotation(3.14159/2);
我明白了

我见过像Seelibrity这样的应用程序,其中选择器的宽度适合屏幕。 请帮助我解决此问题?

请尝试以下操作:

使用选项“打开为”->“文本文件”打开xib文件

搜索选择器视图对象:

<object class="IBUIPickerView" id="648806599">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 83}, {100, 50}}</string>  ---> here
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<bool key="IBUIShowsSelectionIndicator">YES</bool>
</object>

292
{{0,83},{100,50}->这里
不
对
对
对
更改NSframe,也许这会有所帮助

问候


亚历杭德拉

UIPickerView对高度的变化非常敏感,因此直接更改其帧或对UIPickerView应用变换会导致渲染瑕疵。我所知道的调整UIPickerView大小的唯一可靠方法是将其放置在透明的UIView中,然后对该视图应用缩放(和旋转,在您的例子中)变换


我在中提供了一个例子。

或者他可以使用UIScrollView。鉴于数据源和单元格显示方法已经存在,UITableView将是一个更好的选择。UIScrollView需要他为UIPickerView所做的许多事情重新发明轮子。即使使用UITableView,也需要大量自定义插图和重叠子视图,以及一些用于管理当前选定行的机制。