Как создать ярлык для последнего обновления UIToolBar, подобный тому, который есть в почтовом приложении iPhone - PullRequest
0 голосов
/ 17 декабря 2010

, поэтому у меня есть UIToolbar с «меткой» (на самом деле UIBarButtonItem), например, так:

alt text

Для этого я использовал построитель интерфейса и поместил элемент UIBarButtonна панели инструментов и установите стиль «обычный».Однако, как говорится в заголовке, я пытаюсь скопировать текст в нижней части почтового приложения iPhone, поэтому сначала мне нужно изменить размер шрифта и тип шрифта.Как бы я пошел об этом?Вот соответствующий код:

- (void)viewDidLoad {
    [super viewDidLoad];

    lastUpdateLabel.title = @"Last updated...";//lastUpdateLabel is of type UIBarButtonItem  

    [self.view addSubview:self.navigationController.view];

    [self.navigationController.view setFrame:self.view.frame];

}

Я знаю, что мне, вероятно, понадобятся три разные метки рядом для учета изменения толщины шрифта (полужирный / полужирный?) В метке почтового приложения,Тем не менее, я хотел бы попробовать изменить один на свой вкус, прежде чем продолжить.

Кроме того, мне интересно, как сделать «ярлык» не щелкающим.Если я использую setEnabled: НЕТ, текст становится серым, что не то, что я хочу.Все, что я хочу, чтобы анимация щелчка не появлялась при нажатии на «ярлык».

Заранее спасибо!

РЕДАКТИРОВАТЬ:

Итак, я закончил тем, что создалметка со следующим кодом:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 150.0f, 20.0f)];
    label.text = @"last updated...";
    label.textColor = [UIColor colorWithWhite:0.5 alpha:1.0];
    label.font = [UIFont systemFontOfSize:13.0];
    label.userInteractionEnabled = NO;

    [lastUpdateLabel initWithCustomView:label];
    [label release];

И это приводит к этому:

alt text

Однако я хочу, чтобы фон метки не был белым,точнее, я хочу, чтобы фон был четким, чтобы оттенки серого на панели инструментов были видны.Однако я не нашел никакого атрибута фона в документации UILabel.Кто-нибудь знает, как это сделать?Спасибо!

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

Вы должны использовать пользовательский элемент нижней панели, который содержит UILabel в качестве пользовательского представления. Таким образом, вы можете изменить размер шрифта и т. Д. Через свойства метки.

UILabel *label = [[[UILabel alloc] initWithFrame:myFrame] autorelease];
...
UIBarButtonItem *statusItem = [[[UIBarButtonItem alloc] initWithCustomView:label] autorelease];
myToolbar.items = [NSArray arrayWithObject:statusItem];
1 голос
/ 18 декабря 2010

UILabel является подклассом UIView, который имеет свойство backgroundColor.Просто позвоните label.backgroundColor = [UIColor clearColor];.

...