Разработка iPhone: как создать цветной или полупрозрачный фон для UIActionSheet?

Когда вы пытаетесь удалить заметку в приложении Notes для iPhone, появляется сообщение UIActionSheet. Лист полупрозрачный (но не черный полупрозрачный). Как это достигается? Возможно ли сделать фон UIActionSheet определенным цветом?

Обычно я использую следующий метод делегирования:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet 

Просто сделать образец. В этом случае я использую растянутый png в качестве фона:

 - (void)willPresentActionSheet:(UIActionSheet *)actionSheet { UIImage *theImage = [UIImage imageNamed:@"detail_menu_bg.png"]; theImage = [theImage stretchableImageWithLeftCapWidth:32 topCapHeight:32]; CGSize theSize = actionSheet.frame.size; // draw the background image and replace layer content UIGraphicsBeginImageContext(theSize); [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)]; theImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); [[actionSheet layer] setContents:(id)theImage.CGImage]; } 

и это результат: alt text http://grab.by/4yF1

Вы можете использовать следующий код:

 actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackOpaque; 

или

 actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent; 
 actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent; 

Это не слишком сложно. Вы можете использовать следующий код:

 CGSize mySize = myActionSheet.bounds.size; CGRect myRect = CGRectMake(0, 0, mySize.width, mySize.height); UIImageView *redView = [[[UIImageView alloc] initWithFrame:myRect] autorelease]; [redView setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5]]; [myActionSheet insertSubview:redView atIndex:0]; 

Просто убедитесь, что вы представили таблицу UIActionSheet перед этим, или размер не будет установлен. Это делает его уродливым, но вы можете сделать что-то вроде:

 [myActionSheet showInView:self.view]; if (!redAdded) { redAdded = YES; //THE ABOVE CODE GOES HERE } 

Вы можете точно настроить непрозрачность, установив альфа-значение. Интерфейс Builder позволяет редактировать значение напрямую, но в коде, я думаю, вы бы сделали:

 [[myActionSheet view] setOpaque:NO]; [[myActionSheet view] setAlpha:0.5]; 

Я не уверен, нужен ли вам вызов setOpaque или нет – я думаю, что это помогает оптимизировать производительность, так как iPhone не будет пытаться отобразить что-либо скрытое непрозрачным представлением.

Это выглядит черным для меня (примечание: использование 2.2.1). Единственная причина, по которой это цвет, – из-за желтого позади него.

Один из вариантов – использовать черный прозрачный фон и узнать размер и скорость листа действий. Затем создайте представление и анимируйте его в то же самое время, когда вы показываете лист действий, только под ним, чтобы придать ему оттенок, отличный от цвета, естественно лежащего за листом действия. Вы должны сделать цветное изображение также полупрозрачным, чтобы вы могли видеть позади этого.

Я не уверен, могу ли вы это сделать, но вы также можете попытаться настроить непрозрачность самого листа действий.

  • Как определить размер шрифта UILabel, когда -adjustsFontSizeToFitWidth установлен на YES?
  • CGRectMake, CGPointMake, CGSizeMake, CGRectZero, CGPointZero недоступен в Swift
  • Как отменить 2 Modal View Controllers в последовательности?
  • Есть ли хорошие полезные учебные пособия UIScrollView в сети?
  • Отображать мягкую клавиатуру iPhone, даже если подключена аппаратная клавиатура
  • UITableView: удаление разделов с анимацией
  • Есть ли готовый календарь для iPhone приложений?
  • Передача аргументов в селектор в Swift
  • Просмотр controllerов: как программно переключаться между представлениями?
  • Пользовательская анимация для нажатия UIViewController
  • Можно ли отключить плавающие заголовки в UITableView с помощью UITableViewStylePlain?
  • Interesting Posts

    как предотвратить блокировку fgets, когда в файловом streamе нет новых данных

    scala: memoize функция независимо от того, сколько аргументов функция принимает?

    elasticsearch – что делать с неназначенными осколками

    Внедрение N технологического барьера с использованием семафоров

    Аргументы process.start ()

    Как развернуть / свернуть все блоки кода ruby ​​в блокноте ++?

    adb получил два одинаковых серийных номера при подключении к двум смартфонам

    OS X: Как выполнить изображение без потерь изображения JPEG?

    Дублированные записи в ListView

    В чем разница между sscanf или atoi, чтобы преобразовать строку в целое число?

    Как эффективно удалять документы по запросу в монго?

    Как переключаться между окнами на VIM?

    Справка по обновлению MySQL

    как вы делаете гетерогенную boost :: map?

    Получение «файла не обнаружено» в заголовке Bridging при импорте инфраструктур Objective-C в проект Swift

    Давайте будем гением компьютера.