Як було створено цей спливний вигляд?

Будь ласка, дивіться зображення нижче.

Як було створено цей спливний вигляд? Припустимо, я хотів би повністю наслідувати цей погляд шрифтами, як я можу це зробити?

enter image description here

2
Це просто користувацький режим! Подібно цьому: stackoverflow.com/questions/4769169/& hellip; легко зробити!
додано Автор elp, джерело
Це просто користувальницький режим перегляду з декількома підглядами: фон UIImageView, три UIButtons, один UILabel і один UISwitch.
додано Автор beryllium, джерело

2 Відповіді

Для цього не існує компонента, відкрита SDK, але це дуже легко можна зробити, використовуючи ієрархію переглядів:

UIView - Main view. Uses a bezier path to create a protrusion to point from the source. Has a border and drop shadow added to its layer.

UIButton - Smaller font
UIButton - Larger font
UIButton - Change font type
UIButton - Container for sepia.
UILabel - "Sepia" text UISwitch - turning sepia on and off

Просто покажіть і сховайте представлення з анімацією. Також створіть зворотні дзвінки делегатів, щоб повідомити делегату, коли відбуваються події у вікні перегляду.

// Delegate returns if the text can get smaller to enable/disable the button
- (BOOL) didSelectSmallerFont:(CGFloat)fontSize;
// Delegate returns if the text can get larger to enable/disable the button
- (BOOL) didSelectLargerFont:(CGFloat)fontSize; 
- (void) didChangeFont:(UIFont*)font;
- (void) didToggleSepia:(BOOL)enabled;

тощо.

4
додано
Хороша відповідь +1, але щоб бути більш сучасним (і припускаючи, що ви націлюєтесь на iOS 4.0+), ви повинні використовувати блоки замість зворотних викликів.
додано Автор kubi, джерело
@ Кубі - Точно, що я думав, читаючи це ... Спасибі!
додано Автор joshim5, джерело

Форма піраміди не пов'язана з кнопкою, яку натиснули, щоб відобразити спливаюче вікно. Це буде підсумком спливаючого вікна, або UIImageView, або, можливо, намальовано на UIView, хоча UIImageView стане простим рішенням. Ви можете безперечно кодувати спливаюче подання, щоб вказати цю стрілку в будь-якій точці екрана або в будь-якому напрямку. Що я хочу зробити, це інсценивати спливаюче вікно за допомогою методу init, який називається initFromPoint: , а потім передайте центральне значення кнопки, яка використовується для запуску спливаючого вікна. Потім в межах методу viewDidLoad в спливаючому місці точка відповідно до точки.

0
додано