Как увеличить ширину вида (трансформированного вида)? - PullRequest
0 голосов
/ 19 декабря 2009

Я пытаюсь прокрутить вид сборщика по горизонтали, и это мой код.

в viewDidLoad я сделал это,

     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, если я пытаюсь сделать это, остается черный фон.

CorrectImage http://img709.imageshack.us/img709/6982/picture5g.png это правильное изображение

Теперь, если я сделаю это

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);

Я получаю это изображение http://img46.imageshack.us/img46/2792/picture6b.png

Я видел такие приложения, как Seelibrity, в которых сборщик имеет ширину, чтобы соответствовать экрану. Пожалуйста, помогите мне выйти из этой проблемы?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2009

UIPickerView очень чувствителен к изменениям высоты, поэтому непосредственное изменение его кадра или применение преобразования к UIPickerView приводит к артефактам рендеринга. Единственный надежный способ изменения размера UIPickerView, который я знаю, - это поместить его в прозрачный UIView, а затем применить преобразование масштабирования (и, в вашем случае, вращения) к этому виду держателя.

Я привожу пример этого в этом ответе .

0 голосов
/ 23 декабря 2009

Попробуйте следующее:

Откройте файл 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>

Измените NSframe, может быть, это поможет.

С уважением

Алехандра !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...