Мне было трудно заставить это работать, нигде я не видел работающего примера в Интернете.Теперь предлагая награду за это, так как это сводит меня с ума.Это должно быть легко, но, похоже, это не так.
Я бы хотел, чтобы мои кнопки на панели UINavigationBar были полупрозрачными, чтобы они позволяли отображать фон того, что находится на панели UINavigationBar.через.Этот эффект виден во многих приложениях, примеры изображений ниже.Вы можете сделать это, установив пользовательский фон для элемента, что, по-моему, является неприемлемым решением, поскольку требует предварительной подготовки изображений, а также их нельзя адаптировать к переменным кнопкам и т. Д. Они не будут выглядеть как пользовательский интерфейс Apple и я.Не думаю, что есть причина для этого, UIKit уже рисует фон для этих кнопок, нам просто нужно изменить его.Правильное решение использует элементы панели и представления, сгенерированные Apple apis.
UIBarButtonItem не является подклассом UIView.Когда вы создаете его и добавляете его в UINavigationBar, некоторый код где-то в структуре рисует представление для него.Кажется, что методы каркаса сопротивляются всему, что связано с разрешением прозрачности элементов панели, например, свойство tintColor.
Например, это НЕ работает:
UINavigationItem *item = [[UINavigationItem alloc] init];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"SUCKS" style:UIBarButtonItemStyleBordered target:self action:@selector(whatever:)];
editButton.tintColor = [UIColor colorWithWhite:0.4 alpha:0.3];
item.leftBarButtonItem = editButton;
Ничего из того, что я сделаю, не будетUINavigationBar позволяет полупрозрачность для своих элементов бара.Я считаю, что во время выполнения нам нужно:
- Получить изображение для элемента панели
- Маска для прозрачности
- Установить новое изображение для элемента панели
Но я не смог получить изображение во время выполнения или правильно его замаскировать.Как ты это делаешь?