Создание экрана iPhone со скинами управления - PullRequest
0 голосов
/ 15 апреля 2011

Даже не знал, как именно сформулировать этот вопрос, но в этом-то и проблема.

У меня есть приложение для Android, которое я разработал. Я использовал элементы рисования, чтобы в основном создать собственный фон для текстовых элементов управления, макетов и кнопок, чтобы сделать хороший масштабируемый интерфейс.

Вот изображение этого:

https://ssl.gstatic.com/android/market/com.pacemaker.android/ss-0-320-480-160-0-b25671ad8a0f8862993fb6ac28db80618c36853e

Здесь также есть другие скриншоты:

https://market.android.com/details?id=com.pacemaker.android&feature=search_result

Я хочу сделать то же самое для версии для iPhone, но понятия не имею, с чего начать. Похоже, тот же подход не сработает, потому что нет способа установить фон для элемента управления iPhone на векторное изображение?

Каков наилучший способ сделать это для приложения для iPhone?

Я провел какое-то исследование, и я видел инструмент Opacity, но я все еще не уверен, как он называется.

Например: возьмите в моем приложении строку заголовка с надписью «PaceMaker», как лучше всего повторить это в iPhone.

Я хочу убедиться, что он масштабируется, чтобы он работал на 3GS и iPhone 4s.

Ответы [ 3 ]

2 голосов
/ 11 мая 2011

Я думаю, что нашел правильное решение этой проблемы.

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

В итоге я расширил UIViews для создания панелей с правильной заливкой и прозрачностью и рисовал границы так, как я хотел.

Я расширил UIView, чтобы создать закругленную панель и граничную панель. Я просто переопределил метод drawRect и использовал API рисования Quartz для рисования моих форм и границ и использовал градиентные заливки для достижения желаемого эффекта.

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

0 голосов
/ 15 апреля 2011

Вы можете просто установить цвет оттенка навигационной панели для этого ....... Это изменит цвет вашей навигационной панели, и вы также можете поместить текст.

0 голосов
/ 15 апреля 2011

Прежде всего, я думаю, вам не нужно воспроизводить ваш интерфейс Android попиксельно в интерфейс iOS. Обе платформы имеют разный пользовательский опыт. Люди привыкли и ждут знакомого интерфейса с другими приложениями на этой платформе. Лучший способ узнать, что клиенты Apple ждут от вас ^), это прочитать Руководство по интерфейсу пользователя Apple

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html

и давайте поговорим о "строке заголовка". В моем приложении я настраиваю панель навигации. Я просто скопировал код из моего проекта, чтобы дать вам некоторые отправные точки. Вот как это выглядит - http://macsoj.wordpress.com/2011/01/28/astrofriends/.

Я изменяю фон панели навигации на свое собственное изображение, создавая новую категорию UINavigationBar - и переопределяя метод drawRect, так что

@interface UINavigationBar (TransparentAdditions)
@end
@implementation UINavigationBar (TransparentAdditions)
- (void)drawRect:(CGRect)rect {
        UIImage *image = [UIImage imageNamed: @"my_custom_background.png"];
        [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];   
}
@end

и теперь я пишу пользовательский заголовок

CGRect frame = CGRectMake(0, 0, 320, 44);
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:@"MarkerFelt-Thin" size:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
self.navigationItem.titleView = label;
label.text = @"Friends";

Надеюсь, это поможет)

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