Для такой конфигурации вы можете установить переменную окружения на кластере / вашем локальном компьютере, а затем выполнить скрипт для проверки этой переменной, чтобы определить, где она находится:
Вы попытались создать UIButton в кнопочной панели и затем добавить индикатор действия как подпредставление UIButton?
У меня это работает, и это очень просто. Просто поместите индикатор активности там, где вы хотите, с помощью IB, но убедитесь, что он ниже в списке, чем панель, на которой вы хотите его, и находится на «верхнем уровне» (а не в подвиде чего-либо еще). Затем управляйте кодом через розетку.
Вот кое-что, что может помочь:
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[activityIndicator startAnimating];
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[activityIndicator release];
self.navigationItem.rightBarButtonItem = activityItem;
[activityItem release];
[activityIndicator startAnimating];
Мое решение - создать подкласс UIButton:
в SOActivityButton.h:
@interface SOActivityButton : UIButton
{
UIActivityIndicatorView* activityIndicator;
}
@end
в SOActivityButton.m:
@implementation SOActivityButton
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
CGRect innerFrame = CGRectInset(frame, 8.0f, 8.0f);
activityIndicator = [[UIActivityIndicatorView alloc]
initWithFrame:innerFrame];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
[self addSubview:activityIndicator];
}
return self;
}
- (void)dealloc
{
[activityIndicator release], activityIndicator = nil;
[super dealloc];
}
- (void) startAnimating
{
[activityIndicator startAnimating];
}
- (void) stopAnimating
{
[activityIndicator stopAnimating];
}
@end
Затем использовать его:
SOActivityButton* activityButton = [[SOActivityButton alloc]
initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activityButton setImage:[UIImage imageNamed:@"button-background.png"]
forState:UIControlStateNormal];
[activityButton addTarget:self action:@selector(myAction:)
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *activityBarButtonItem = [[UIBarButtonItem alloc]
initWithCustomView:activityButton];
[activityButton release];
self.navigationItem.rightBarButtonItem = activityBarButtonItem;
[activityBarButtonItem release];
Вам нужно найти или создать button-background.png. В PSD здесь он должен быть.