Динамически меняющийся логотип приложения

Этот вопрос касается новой функции iOS 10.3, которая дает пользователю возможность настраивать логотип приложения, который он видит на рабочем столе. (Проверьте MLB в приложении Bat для справки, где они позволяют пользователю выбрать, какой значок будет логотипом приложения: http://m.mlb.com/apps/atbat)

Согласно моим исследованиям, нам необходимо представить на рассмотрение Apple все возможные варианты логотипа. Затем пользователь может настроить логотип, используя любой из этих параметров. Теперь, в моем конкретном случае использования, я, возможно, не всегда хочу, чтобы все параметры логотипа были доступны для всех пользователей. Мне нужна помощь, чтобы выяснить, как управлять тем, какие логотипы показываются всем пользователям? например. если у нас есть 10 изображений, для пользователя А мы можем показать только изображения 1 и 2 на выбор; а для пользователя B мы можем захотеть показать только изображение 3 и изображение 4 на выбор в качестве логотипа приложения. Это возможно? Большое спасибо заранее!


person Ney    schedule 04.05.2017    source источник
comment
developer.apple.com/reference/uikit/uiapplication/ ? Я предполагаю, что вы называете себя таким методом, затем вы сами выбираете, какой логотип вы хотите показать пользователю на выбор?   -  person Larme    schedule 04.05.2017


Ответы (2)


Вы можете управлять установленным значком с помощью метода setAlternateIconName(_:completionHandler:) на UIApplication.

Пример использования:

UIApplication.shared.setAlternateIconName("myImage", completionHandler: { error in
    print("completed")
})

Вы можете вызывать это всякий раз, когда это уместно в вашем приложении. Поэтому, если вы хотите показать только несколько параметров, вы можете сделать это со своими собственными представлениями и вызывать этот метод только при необходимости.

Дополнительная информация в документации здесь: https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname

Вот еще один ответ SO с полезным кодом и изображениями: https://stackoverflow.com/a/41951096/6658553

person nathangitter    schedule 04.05.2017

Добавьте все значки в какую-либо папку в вашем приложении, с помощью приведенного ниже метода вы должны управлять тем, какой пользователь должен видеть какие значки.

if([user isEqualToString:@"user1"]){
    [UIApplication.sharedApplication setAlternateIconName:@"icon1" completionHandler:^(NSError * _Nullable error) {
            if (error) {
                NSLog(@"---> error - %@",error.description);
            }
            else{
                NSLog(@"---> icon1 ");
            }
        }]
}

Если вы хотите дать пользователю возможность выбирать из значков, вы также можете написать соответствующий код, чтобы он мог выбирать только из отфильтрованных.

person niku    schedule 15.10.2018