Большой индикатор активности на iPhone

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

Как и в этом посте, но не в полноэкранном режиме, индикатор активности Как создать полноэкранный режим отображения состояния на iPhone?

Ответ 1

Ваш скриншот - это, вероятно, использование модуля David Sinclair DSActivityView. В частности, компонент DSBezelActivityView. Или, если нет, это близкая копия.

http://www.dejal.com/developer/dsactivityview

Я использую DSActivityView все время. Большая библиотека. Бросьте эту вещь, снимая данные, радует пользователей и клиентов.

Ответ 2

Вот что я использую, когда хочу показать такие индикаторы.

UIView *loading = [[UIView alloc] initWithFrame:CGRectMake(100, 200, 120, 120)]; 

loading.layer.cornerRadius = 15;
loading.opaque = NO;
loading.backgroundColor = [UIColor colorWithWhite:0.0f alpha:0.6f];

UILabel *loadLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 25, 81, 22)];

loadLabel.text = @"Loading";
loadLabel.font = [UIFont boldSystemFontOfSize:18.0f];
loadLabel.textAlignment = UITextAlignmentCenter;
loadLabel.textColor = [UIColor colorWithWhite:1.0f alpha:1.0f];
loadLabel.backgroundColor = [UIColor clearColor];

[loading addSubview:loadLabel];
[loadLabel release];

UIActivityIndicatorView *spinning = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinning.frame = CGRectMake(42, 54, 37, 37);
[spinning startAnimating];

[loading addSubview:spinning];
[spinning release];

loading.frame = CGRectMake(100, 200, 120, 120);

Затем вы просто добавляете "загрузку" в представление по вашему выбору, и вы его получили.

Надеюсь, это то, что вам нужно.

Ответ 4

Я не думаю, что это скриншот DSBezelActivityView; метрики выглядят немного иначе. Но это очень похоже.

Примечание. В DSActivityView и его подклассах не используются изображения или наконечники; они являются чистым кодом.

Чтобы ответить на исходный вопрос, было бы легко изменить DSBezelActivityView, чтобы опустить полноэкранный серый фон. Вы можете сделать это путем подкласса и переопределения метода -setupBackground:

- (void)setupBackground;
{
    [super setupBackground];

    self.backgroundColor = [UIColor clearColor];
}

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

Ответ 5

Попробуйте этот простой метод, он хорошо работает для меня....

UIActivityIndicatorView *activityIndicator= [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
activityIndicator.layer.cornerRadius = 05;
activityIndicator.opaque = NO;
activityIndicator.backgroundColor = [UIColor colorWithWhite:0.0f alpha:0.6f];
activityIndicator.center = self.view.center;
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[activityIndicator setColor:[UIColor colorWithRed:0.6 green:0.8 blue:1.0 alpha:1.0]];
[self.view addSubview: activityIndicator];

Ответ 6

На самом деле вы смотрите на использование двух подклассов UIView и пользовательского .png-изображения, чтобы получить нужный вам вид. Серая полупрозрачная коробка будет объектом UIImageView, чтобы получить эффект, который вам нужен, вам нужен файл .png серого квадрата с закругленными углами, он не обязательно должен быть конечным размером, если не меньше один пиксель прямого края между углами будет работать нормально. Затем вы загрузите его как UIImage с помощью UIImage stretchableImageWithLeftCapWidth: topCapHeight: метод, это позволит вам указать верхнюю и левую части изображения, которые должны оставаться неизменными, и 1 пиксельный срез в каждом направлении будет растянут, чтобы заполнить представление UIImage, в котором вы используете изображение. http://www.bit-101.com/blog/?p=2275 имеет отличный пример того, как это работает. Итак, создайте UIImage, затем создайте UIImageView, используя этот образ, установите его непрозрачное свойство NO и альфа-свойство для чего-то, что хорошо вам нравится. Добавьте это под просмотр вашего текущего представления. Теперь вам просто нужно добавить индикатор хода вращения, это еще проще, просто создайте новый интерфейс UIActivityIndicatorView и добавьте его в качестве подзадачи уже созданного UIImageView. Один и тот же базовый метод используется для создания практически любого изменяемого размера элемента в приложении iOS. Вот несколько примеров использования их для кнопок в примере кода Apple UICatalog.