【问题标题】:Creating a base class for customizing the view and let other (UIViews) inherit from that class创建用于自定义视图的基类并让其他(UIViews)从该类继承
【发布时间】:2025-12-26 11:05:06
【问题描述】:

我阅读了这篇文章,但无法正常工作:Change Background Color...

我喜欢为我的所有视图自定义创建一个基础 UIView 类,例如背景图案、按钮颜色、标签栏颜色等。

这是我尝试过的:

  • 创建了一个新的Single View Application
  • UIViewController方法-viewDidLoad中自定义了视图
  • 创建了UIViewController 的新子类
  • 在 IB 中,我创建了一个新的 UIViewController 对象
  • 在 IB (Identity Insp.) 中,我将 UIViewController 类设置为我之前创建的子类

这不是正确的方法吗? 我在想新创建的UIViewController 类将继承所有 我的第一个 UIViewController 类的自定义,因为我继承了那个类。

第二个问题是如何为某些对象使用基类而不是整个视图? 例如,如何让我的 App 中的所有 UIButtons 继承我在一个类中定义的所有行为?

希望你能帮忙。

祝大家复活节快乐。

【问题讨论】:

    标签: iphone objective-c uiview uiviewcontroller


    【解决方案1】:

    我相信你想自定义你的视图,但是我不清楚具体的方式和时间..所以我只会给出通用方法,它会给你如何做的大致思路..

    首先创建一个UIView 的子类,比如BaseView,其中包含要自定义的属性,现在在viewController 的viewDidLoad 方法中创建一个BaseView 的对象并根据需要自定义该对象.. 完成后即可将 viewController 的 self.view 属性设置为这个新创建的 BaseView 对象,然后释放 BaseView 对象。 希望这对您有所帮助...

    编辑: 基于 cmets .. 首先创建一个BaseViewController 类,该类继承UIViewController... 在该类的viewDidLoad 中使用self.view 自定义您的视图

    其次,您想在tabController 中使用的视图控制器应该继承此BaseViewController...只是不要忘记在此视图控制器的viewDidLoad 中调用了[super viewDidLoad];

    这是我所能提供的最好的。.. :) 如果它适合你,请告诉我。

    【讨论】:

    • 保持简单。您有一个带有两个选项卡栏项的选项卡式应用程序,每个选项卡栏项都有一个 UIVIewController 类(基本 Xcode 选项卡式应用程序模板)。而不是在所有两个 UIVIewController 类中的每个 -viewDidLoad 方法中都说背景颜色应该是绿色,我喜欢一个自己的类告诉所有视图都具有绿色背景颜色。
    • 您想动态更改它还是一次性的...?
    • 示例:我有一个带有 UIViewController 类的单视图应用程序。要在该视图上获得绿色背景颜色,我说:[myView setBackgroundColor:[UIColor greenColor]];
    • self.view.backgroundColor = [UIColor redColor];