如何为单个 UIView 提供两个不同的类引用?

Posted

技术标签:

【中文标题】如何为单个 UIView 提供两个不同的类引用?【英文标题】:how to give two different class reference to single UIView? 【发布时间】:2012-07-23 06:19:44 【问题描述】:

我想在我的应用中实现两个功能,即颜色填充和视图放大。但问题是我无法同时实现这两个功能。因为我必须为我的 UIView 的两个功能指定两个不同的类引用,这是不可能的。

换句话说,我有一个视图,并且我已将类引用指定为 UIView(用于颜色功能)。但是对于放大功能,我必须将类引用作为 MagnifyingView 提供给该视图。因此,不可能同时实现这两个功能。

那么我怎样才能在不同的条件下给 UIView 和 ACMagnifyingView 两个不同的类引用到单个 UIView 呢?

我该怎么做?

谢谢。

【问题讨论】:

使用委托应该可以解决您的问题,,, @Rohan - 感谢您的回复。你能解释一下我该怎么做吗? 【参考方案1】:

你试过Categories吗?查看本教程http://iphone-obsessed.blogspot.com.br/2010/05/tutorial-creating-class-categories-in.html

您能提供更多信息吗?也许如果您提供更多信息,我可以为您提供更多帮助

编辑

Categories 的工作原理:

你有一个UIView 类,并且你想要使用一些你重复很多次的方法。你是做什么的:你创建一个UIView 的类别并将这个方法添加到你的类别中,如下所示:

文件UIView+CustomView.h

#import <UIKit/UIKit.h>

@interface UIView (CustomView)

- (void)myCustomMethod;

@end

文件UIView+CustomView.m

#import "UIView+CustomView.h"

@implementation UIView (CustomView)

- (void)myCustomMethod 
  // Whatever you want to do with this UIView


@end

现在,每次您需要使用myCustomMethod 时,您只需导入UIView+CustomView.h,该类中的所有UIView 对象都可以访问此方法。

像这样:

文件MainViewController.m,标题:

#import "UIView+CustomView.h"

文件MainViewController.m,正文,在任何方法中:

[myView myCustomMethod];

考虑到这一点,我相信您可以将 ACMagnifyingView 添加为子类,并添加此类别以使用您的自定义视图

【讨论】:

感谢您的回复。实际上有一个类类型 UIView 的 UIView。但我想为我的应用程序实现放大功能。所以我必须在按钮单击时将类类型作为 ACMagnifyingView 赋予该 UIView。我该怎么做? 检查我的编辑,如果您想了解更多详细信息,请分享您的代码的更多详细信息

以上是关于如何为单个 UIView 提供两个不同的类引用?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 NavigationView 中的单个菜单项提供自定义图标颜色?

PyQt:如何为单个标题设置不同的标题大小?

如何为uiview的不同部分添加多个UITapGestureRecognizer?

如何为 UITapGestureRecognizer 从不同的 UIView 对象设置选择器

如何为两个可启动的活动提供两个不同的名称?

如何为具有自引用指针的类实现复制构造函数/赋值运算符?