Как изменить размер Date Picker в приложении для iphone? - PullRequest
4 голосов
/ 12 марта 2010

У меня есть требование использовать указатель даты в моей заявке. На мой взгляд, у меня есть много контролов, которые ... я не могу добавить средство выбора даты с размером по умолчанию. Кто-нибудь может подсказать, пожалуйста, как я могу уменьшить размер сборщика? я пробовал с Ib, но опция размера отключена в IB?

Ответы [ 5 ]

4 голосов
/ 12 марта 2010

Вы можете изменить размер вашего средства выбора даты, изменив фрейм DatepIcker, но это обрезает большую часть средства выбора даты и не является хорошей идеей. Попробуйте вместо этого добавить свой указатель даты в модальном представлении.

3 голосов
/ 12 марта 2010

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

В качестве второго варианта вы можете отрегулировать фрейм сборщика, применив к нему соответствующий CGAffineTransform (я его не много тестировал, но, кажется, он работает нормально):

picker.transform = CGAffineTransformMake(0.5, 0, 0, 0.5, -80, 0);

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

Редактировать: Приведенный выше код работает и для UIDatePickerView (извините, не был внимательным к вопросу). Но, как утверждали другие, Apple не делала рамку сборщика (легко) настраиваемой, поэтому это может означать, что вам следует подумать об изменении своего дизайна, чтобы попытаться использовать сборщик соответствующего размера, чтобы соответствовать HIG от Apple.

2 голосов
/ 12 марта 2010

Насколько я знаю, вы не можете.

1 голос
/ 10 января 2013

Вы можете изменить размер окна выбора, используя CGAffineTransform. Создайте новый UIView и примените преобразование. затем добавьте представление выбора в новый UIView. Затем добавьте это в свой основной вид.

UIView* transformView = [[UIView alloc] initWithFrame:CGRectMake(75.0f, 344.0f, self.pickerView.frame.size.width, self.pickerView.frame.size.height)];
    transformView.transform = CGAffineTransformMakeScale(0.60f, 0.60f);
    [transformView addSubview:self.pickerView];
    [self.view addSubview:transformView]; 

Но, согласно документации Apple,

Средство выбора - это общая версия средства выбора даты. Как и в случае выбора даты, пользователи вращают колесо (или колеса) выбора до тех пор, пока не появится нужное значение. Общий размер средства выбора, включая фон, фиксирован по размеру клавиатуры на iPhone.

Ссылка: https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW1

1 голос
/ 22 марта 2010

Использовать setFrame:(CGRect)inRect API представления выбора в методе viewDidLoad. Но я не знаю, можете ли вы изменить размер DatePicker !!!

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