请看下图。
这个“弹出”视图是如何创建的?假设我想用字体完全模仿那个视图,我该怎么做?
没有用于此的 SDK 公开组件,但可以很容易地使用视图层次结构来实现:
UIView - 主视图。使用贝塞尔路径创建从源指向的突起。在其图层中添加了边框和阴影。
UIButton - 较小的字体
UIButton - 较大的字体
UIButton - 更改字体类型
UIButton - 棕褐色的容器。
UILabel - “棕褐色”文本 UISwitch - 打开和关闭棕褐色
只需使用动画显示和隐藏视图。此外,创建委托回调以在弹出窗口中发生事件时告诉委托。
// 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;
等等
金字塔形状与单击以显示弹出窗口的按钮无关。这将是弹出视图的子视图,可以是 UIImageView,也可能是在 UIView 上绘制,尽管 UIImageView 会是更简单的解决方案。您绝对可以对弹出视图进行编码,以将该箭头指向屏幕上的任何点或任何方向。我要做的是通过一个名为的 init 方法实例化弹出窗口initFromPoint:
,然后传递用于启动弹出窗口的按钮的中心值。然后在viewDidLoad
弹出的方法中根据点适当放置点。