Большой индикатор активности на 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);
Затем вы просто добавляете "загрузку" в представление по вашему выбору, и вы его получили.
Надеюсь, это то, что вам нужно.
Ответ 3
Один вариант: MBProgressHUD.
Ответ 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.