Проблема
Мое приложение выглядит правильно, но я не могу добиться размытого полупрозрачного эффекта, которым славится iOS 7. Шахта выглядит непрозрачной.
Желаемый эффект
Я пытаюсь получить более очевидный эффект размытия, например приложение Apple Trailers:
полупрозрачности
В моем подклассе UINavigationController я делаю навигационную панель полупрозрачной:
- (id)initWithRootViewController:(UIViewController *)rootViewController
{
if (self = [super initWithRootViewController:rootViewController]) {
self.navigationBar.translucent = YES;
}
return self;
}
Цвет оттенков
В моем подклассе UIApplicationDelegate я установил цвет оттенка панели навигации. Я обнаружил, что альфа цвета оттенка не имеет значения. То есть, используя альфа 0,1, не приведет к тому, что стержень станет более прозрачным.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
}
Ребра
В моем контроллере представления контента я установил кромку UIRectEdgeNone
, чтобы верхняя часть не отображалась на панели навигации. Если бы я использовал стандартный UIRectEdgeAll
, навигационная панель постоянно покрывала бы верхнюю часть моего содержимого. Даже если я должен был жить с этой аномалией, UIRectEdgeAll
все еще не позволяет эффект полупрозрачности.
- (void) viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeNone;
}
Изменить: экспериментировать с краями
Объявление, указанное в комментариях @rmaddy в комментариях, может быть проблемой с edgeForExtendedLayout. Я обнаружил всеобъемлющий учебник edgeForExtendedLayout и попытался его реализовать:
- (void) viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self.automaticallyAdjustsScrollViewInsets = YES;
self.extendedLayoutIncludesOpaqueBars = NO;
}
Это не сработало. Во-первых, эффекта полупрозрачности не было. Во-вторых, верхняя часть моего контента была отрублена. На следующей странице примера с приведенным выше кодом аватар был первоначально покрыт навигационной панелью, и прокручивать ее было очень сложно. Вы могли бы спуститься, чтобы увидеть верхнюю часть аватара, но когда вы отпустите, страница автоматически подпрыгнет, и аватар снова будет скрыт.