我实现了一个CustomPopOverBackgroundView,它是UIPopoverBackgroundView的子类。
我实现了类方法
+(UIEdgeInsets)contentViewInsets{
return UIEdgeInsetsMake(CONTENT_INSET, CONTENT_INSET, CONTENT_INSET, CONTENT_INSET);
}
目前CONTENT_INSET是固定值:
#define CONTENT_INSET 25.0
我想要做的是,能够更改此值,以便我可以在应用程序中使用不同的内容插入不同的弹出窗口。
是否可以只有一个popoverbackground类?
非常感谢。
答案 0 :(得分:1)
我认为没有一种完美的方法可以做到这一点,我认为Apple的API不允许我们自己创建背景类的实例,这是蹩脚的。
但是,有点繁琐的解决方法是创建一个静态方法,如setContentViewInsets:(UIEdgeInsets)insets,以更改静态变量的值,如contentViewInsets,然后可以通过+(UIEdgeInsets)contentViewInsets方法返回。
那么,每次需要更改contentViewInsets时都必须调用“setContentViewInsets”。这有点烦人,但这是我能想到的“最佳”方式而不创建一堆背景类。
顺便说一句,在运行时更改contentViewInsets会产生动画副作用,对我来说也很烦人。
我真的希望Apple可以更改API以获取实例而不是后台类本身。