我想知道我可以定义任何功能应用程序吗?比如说我需要一个能给我标签动态高度的功能。在哪里以及如何定义此函数以便我可以在任意数量的文件中使用它?
还寻找基于文本计算标签动态高度的好代码。我在网站上尝试了很多代码,但这让我很困惑。
谢谢..
答案 0 :(得分:4)
您可以通过创建.h / .m文件对来创建全局函数,但不要在其中声明Objective-C类。
相反,您可以使用C风格的功能,如下所示:
//Foo.h
CGFloat GetHeight(UIView *view);
//Foo.m
CGFloat GetHeight(UIView *view) {
return view.frame.size.height;
}
然后,您可以在pch
文件中包含头文件,以便将其包含在任何地方。
但是我认为在许多情况下使用类别方法更合适。类别方法将“附加”方法“附加”到类中。
//UIView+MyAdditions.h
@interface UIView (MyAddittions)
- (CGFloat)height;
@end
//UIView+MyAdditions.m
@implementation UIView (MyAdditions)
- (CGFloat)height {
return self.frame.size.height;
}
@end
然后你可以像[myView height]
一样使用它,只要.h文件包含在顶部(或全局)。
答案 1 :(得分:1)
您可以在Appdelegate
中编写函数,也可以在自定义NSObject
类中使用参数NSString
编写静态方法。并且基于length
的{{1}},您可以设置高度并从方法返回高度,该方法可以被调用此方法的类使用。
答案 2 :(得分:1)
通常我在前缀头中导入这样的类(这包括我在应用程序范围内使用的对象的类别)。前缀头中的所有导入都是应用程序范围的。 iOS项目中的前缀标头默认情况下如下所示:
appName_Prefix.pch
答案 3 :(得分:0)
如何通过返回标签高度的方法使category扩展UILabel的界面呢?
或者(但不是那么优雅)是创建一个包含所需静态方法的单例类。