如何为单个 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 中的单个菜单项提供自定义图标颜色?
如何为uiview的不同部分添加多个UITapGestureRecognizer?