【问题标题】:UINavigationBar drawRect Alternative (aka, Need CoreGraphics calls in a category)UINavigationBar drawRect Alternative(又名,需要在一个类别中调用 CoreGraphics)
【发布时间】:2013-01-28 16:26:24
【问题描述】:

我最近发现在 > iOS5 UINavigationBar 中没有调用它的 drawRect。我想弄清楚如何在一个类别中使用 Core Graphics 进行绘制。

我要实现的最终目标是从我的应用程序中消除图像,并在运行时绘制所有内容。我也在尝试使这个库自动化,这样用户就不必考虑使用我的自定义类。

有没有办法在运行时用你自己的类替换一个类?喜欢:replaceClass([UINavigationBar class], [MyCustomBar class]);

提前致谢。

【问题讨论】:

    标签: objective-c uikit core-graphics drawrect


    【解决方案1】:

    有没有办法在运行时用你自己的类替换一个类?

    在 Objective-C 中,这被称为 class posing

    类冒充基于 NSObjectposeClass 方法的使用,该方法现已弃用(在 64 位平台上,包括 iPhone)。

    已经研究了替代方法;您可以阅读大约一个 here,但它们似乎不太符合要求。

    【讨论】:

    • 这个方法的问题是,即使我把UINavigationBar中的drawRect换成我自己的方法,在iOS5或更高版本中也不会调用drawRect。
    【解决方案2】:

    我找到了解决方案,我没有弄乱绘制矩形,而是做了一些绘制到 UIImage 的方法,然后将图像设置为我正在自定义的元素的背景视图。它让我的自定义 UI 再次变得神奇。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多