2010-01-13 2 views
1

Это очень общий вопрос (не связанный с каким-либо приложением). Просто мои поиски, чтобы узнать больше.iPhone + UIControls

При создании любого приложения для iPhone мы видим, что в библиотеке Interface Builder доступно несколько UIControls. С их помощью мы можем создавать все основные приложения и проекты, а также мы не можем их настроить в значительной степени.

Но если мы увидим в App Store, доступны тысячи приложений, в которых есть много UIControls, которые либо недоступны в Библиотека или, возможно, они были настроены в значительной степени.

Я хочу знать, что:

  1. Можем ли мы использовать не только доступны элементы управления в библиотеке (если да, то чем, как и откуда, чтобы получить это).

  2. Если мы не можем, как мы можем изменить (настроить) доступные UIControls настолько, чтобы они выглядели совершенно иначе, чем их первоначальный внешний вид.

С уважением, Pratik

ответ

3

Для начала, можно установить изображение (в том числе прозрачности) для большинства контроллеров. Многие контроллеры, которые выглядят как разные элементы управления, могут фактически быть одним и тем же элементом управления, просто перераспределены. Многие контроллеры допускают subviews - удивительно, сколько можно достичь, просто используя контроллер таблицы.

Также стоит знать, что любой элемент управления, который вы размещаете с помощью графического интерфейса пользователя, также может быть установлен в подкласс, где вы переопределяете поведение. Просто выберите элемент управления, нажмите Shift-Apple i и измените класс в Class Identity.

+0

Casebash, вы можете более подробно объяснить, что такое reskinned, также, если я использую слишком много изображений в приложении, будет проблема с памятью? – pratik

+0

Я думаю, вам нужно предоставить более подробную информацию о том, какие элементы управления вы хотите достичь. – Casebash

+0

Предположим, я хочу настроить UIPickerView, чем? – pratik

1

посмотрите библиотеку three20. Он включает пользовательскую стилизованную кнопку, ярлыки и текст. Он должен дать вам общее представление о том, как настроить собственные элементы пользовательского интерфейса.

Часто вы не используете изображения, подобные casebash, а не рисуете свои элементы графическими методами.

Другим возможным решением является переопределить

- (void)drawRect:(CGRect)rect 

вашего UIView

Edit:
Исходный код взят из

Custom UIButton for Iphone

INDEX_OFFSET = 82753; // random 

UIButton *sampleButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[sampleButton setFrame:CGRectMake(kLeftMargin, 10, self.view.bounds.size.width - kLeftMargin - kRightMargin, 52)]; 
[sampleButton setTitle:@"Button Title" forState:UIControlStateNormal]; 
[sampleButton setFont:[UIFont boldSystemFontOfSize:20]]; 
[sampleButton setTag:<INDEX>+INDEX_OFFSET]; 
[sampleButton setBackgroundImage:[[UIImage imageNamed:@"redButton.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal]; 
[sampleButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:sampleButton]; 
+0

Henrik, не могли бы вы подробно объяснить, что вы имеете в виду, рисуя свои элементы графическими методами? – pratik

+0

pratik, я добавил код. Я не буду надавливать на вас, но если найдутся какие-либо ответы здесь полезными, вы должны начать поднимать или принимать их (даже если это не мой ответ :) –

1

Для индивидуальных контроллеров лет u может проверить Three20 Project от Joe Hewitt.