我已经实现了CustomPopOverBackgroundView,它是UIPopoverBackgroundView的子类。

香港专业教育学院实现的类方法

+(UIEdgeInsets)contentViewInsets{
    return UIEdgeInsetsMake(CONTENT_INSET, CONTENT_INSET, CONTENT_INSET, CONTENT_INSET);
}


并且目前CONTENT_INSET是固定值:

#define CONTENT_INSET 25.0


我想做的就是能够更改此值,以便我可以在整个应用程序中使用不同的内容插入设置不同的弹出窗口。

是否可能只有一个popoverbackground类?

非常感谢。

最佳答案

我认为没有做到这一点的完美方法,而且我认为Apple API不允许我们自己创建背景类的实例也很遗憾。

但是,一种繁琐的解决方法是创建一个诸如setContentViewInsets:(UIEdgeInsets)insets之类的静态方法,以更改诸如contentViewInsets之类的静态变量的值,然后可以由+(UIEdgeInsets)contentViewInsets方法返回该变量。

因此,每次需要更改contentViewInsets时,都必须调用“ setContentViewInsets”。这有点烦人,但这是我无需创建大量背景类就可以想到的“最佳”方法。

顺便说一下,在运行时更改contentViewInsets将产生动画副作用,对我来说,这也很烦人。

我真的希望Apple可以将API更改为采用实例,而不是后台Class本身。

10-08 01:02