Ответы пользователя по тегу iOS
  • Возможна ли расслыка push уведомлений для iOS приложения, удаленного из Apple Store?

    Дело не только в наличии приложения в маркете. Что бы рассылать Push уведомления, необходимо наличие действующего сертификата. А с отзывом приложения, скорее всего отзовут и сертификат. Так что: нет, не возможна.
    Ответ написан
    Комментировать
  • Как использовать разработанное приложение только внутри компании?

    1. Вам необходимо купить лицензию разработчика (~$100)
    2. На сайте apple в разделе developer.apple.com/ios необходимо создать приложение и distribution сертификат
    3. Далее необходимо собрать UDID устройств сотрудников вашей компании
    4. Необходимо сгенерировать AdHoc provision profile для вашего приложения (в который включить сертификат и все UDID-ы)
    5. Далее необходимо подписать приложение этим profile (например в xCode)
    6. Выложить ipa файл на сервер для скачивания сотрудниками

    После этого, готовый .ipa файл может быть скачан и установлен прямо из safari на iPhone.

    В каждом из этих шагов много тонкостей, но как road map есть с чего начать
    Ответ написан
    Комментировать
  • Возможно ли сделать всплывающие окна на ios?

    В iOS на экране может быть только одно активное приложение.

    Как вариант, можно посмотреть в сторону UILocalNotification.
    Это нотификации, которые могут всплывать поверх других приложений, но они
    должны быть созданы заранее на конкретное время.

    UILocalNotification *notification = [[UILocalNotification alloc] init];
        notification.timeZone = [NSTimeZone defaultTimeZone];
        // покажем нотификацию через 1 минуту
        notification.fireDate = [[NSDate date] dateByAddingTimeInterval:60.0f];
        notification.alertAction = @"Simple action!";
        notification.alertBody = @"Simple body.";
        notification.soundName = UILocalNotificationDefaultSoundName;
        notification.applicationIconBadgeNumber = 0;
        notification.repeatInterval = NSWeekCalendarUnit;
        
        // push notification only in background state
        if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
            [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
        }
    Ответ написан
    Комментировать
  • Как в UIWebView показать полностью страницу c фиксированной шириной и высотой?

    Варианта 2:
    1. Попробовать
    webView.scalesPageToFit = NO

    2. Создать webVIew с размерами 740x740 px. Выставить ей scrollEnabled = NO. И Вставить внутрь UIScrollView по размеру экрана.
    Ответ написан
    Комментировать
  • Разработка под iOS. Почему приложение зависает на этапе установки .app-файла через iTunes?

    Несовсем понял что значит "установить приложение через iTunes". Используется AdHoc сборка? Часто помогает перевыпуск Distribution профайла. Особенно после добавления устройств.

    Но если проблема с профайлом, то не ставиться ни на одно устройство. А так, да SashaSkot правильно сказал - некорректно добавлены UDID.
    Ответ написан
    Комментировать
  • Ios как прикрепить поле ввода к клавиатуре?

    1. Когда клавиатура появляется на экране в приложение "прилетает" нотификация UIKeyboardWillShowNotification. Когда клавиатура пропадает с экрана - UIKeyboardWillHideNotification соответственно.

    В контроллере, где необходимо каким-либо образом реагировать на это поведение необходимо подписаться на эти нотификации (например в viewDidLoad):

    - (void) registerNotification {
        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
        
        [nc addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
        [nc addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    }


    2. Рассмотрим возможную реакцию на появление клавиатуры:

    - (void) keyboardWillShow: (NSNotification *) notification {
        
        NSValue *value = [notification.userInfo objectForKey: UIKeyboardFrameEndUserInfoKey];
        CGRect keyEndFrame = [value CGRectValue];
        CGRect keyFrame = [self.view convertRect:keyEndFrame toView:nil];
        NSNumber *duration = [notification.userInfo objectForKey: UIKeyboardAnimationDurationUserInfoKey];
        
        [self showKeyBoardWithKeyFrame:keyFrame andDuration:[duration doubleValue]];
    }


    Вместе с нотификацией приходит много полезной информации о поведении клавиатуры в ближайшее время: ее размер, время анимации и даже поведение во время анимации (с затуханием или с разгоном).

    В приведенном коде мы берем финальный фрейм (keyEndFrame) в виде NSValue и преобразуем его в систему координат контроллера.
    Кроме того получаем длительность анимации (duration).

    3. Реакция на появление
    Предположим, что все наши элементы лежат в UIScrollView (_scrollView) и она занимает всю область экрана.
    Тогда нам достаточно лишь сдвинуть ее фрейм, что бы все элементы имели возможность быть показанными на экране.

    - (void) showKeyBoardWithKeyFrame:(CGRect)keyFrame andDuration:(NSTimeInterval) duration {
    	BOOL animation = (duration > 0.0) ? YES : NO;
    	CGFloat keyboardHeight = keyFrame.size.height;
    	CGFloat scrollHeight = self.view.bounds.size.height - keyboardHeight;
    	CGRect scrollFrame = _scrollView.frame;
    	scrollFrame.size.height = scrollHeight;
        
    	if (animation) {
    	    [UIView animateWithDuration:duration delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    	    	[_scrollView setFrame: scrollFrame];
    	    } completion:nil];
    	} else {
    		[_scrollView setFrame: scrollFrame];
    	}
    }
    Ответ написан
    Комментировать
  • На что обратить внимание при подготовке графики для ретины?

    От себя добавлю, что тонкие линии могут выглядеть "замыленными" при 50 % уменьшении макета, если на retina картинке они были в нечетной позиции. Например: в координате y = 11. Но это я думаю было бы заметно на этапе макета.

    Если же макет соответствует требованиям, то на устройстве при условии правильной верстки вы получаете ожидаемый результат.
    Ответ написан
    Комментировать