1

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

我已经实现了类方法

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

目前 CONTENT_INSET 是固定值:

#define CONTENT_INSET 25.0

我想做的是能够改变这个值,这样我就可以在应用程序中使用不同的内容插入来创建不同的弹出框。

是否有可能只有一个 popoverbackground 类?

非常感谢。

4

1 回答 1

1

我不认为有一个完美的方法可以做到这一点,我认为 Apple 的 API 不允许我们自己创建背景类的实例是很糟糕的。

然而,一个有点乏味的解决方法是创建一个像 setContentViewInsets:(UIEdgeInsets)insets 这样的静态方法来更改像 contentViewInsets 这样的静态变量的值,然后可以通过 +(UIEdgeInsets)contentViewInsets 方法返回。

因此,每次需要更改 contentViewInsets 时都必须调用“setContentViewInsets”。这有点烦人,但这是我能想到的“最好”的方式,而无需创建一堆背景类。

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

我真的希望Apple可以更改API以获取实例而不是后台类本身。

于 2013-02-14T21:17:16.000 回答