首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用范围广的功能

应用范围广的功能
EN

Stack Overflow用户
提问于 2011-04-26 20:55:03
回答 4查看 89关注 0票数 1

我想知道我可以定义任何应用程序范围的函数吗?比方说,我需要一个函数来给出标签的动态高度。在哪里以及如何定义这个函数,以便我可以在任意数量的文件中使用它?

也寻找基于文本计算标签动态高度的好代码。我尝试了网站上的许多代码,但这让我感到困惑。

谢谢..

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-26 21:00:51

您可以通过创建一对.h/.m文件来创建全局函数,但不需要在其中声明Objective-C类。

相反,您可以使用C风格的函数,如下所示:

代码语言:javascript
复制
//Foo.h
CGFloat GetHeight(UIView *view);

//Foo.m
CGFloat GetHeight(UIView *view) {
    return view.frame.size.height;
}

然后,您可以将头文件包含在pch文件中,以便将其包含在所有位置。

然而,我认为在许多情况下,使用Category方法会更合适。类别方法将方法“附加”到类。

代码语言:javascript
复制
//UIView+MyAdditions.h
@interface UIView (MyAddittions)
- (CGFloat)height;
@end

//UIView+MyAdditions.m
@implementation UIView (MyAdditions)
- (CGFloat)height {
   return self.frame.size.height;
}
@end

只要.h文件包含在顶部(或全局),您就可以像使用[myView height]一样使用它。

票数 4
EN

Stack Overflow用户

发布于 2011-04-26 21:00:42

您可以在Appdelegate中编写函数,也可以在具有参数NSString的自定义NSObject类中编写静态方法。根据NSStringlength,您可以设置height并从方法返回height,调用此方法的类可以使用它。

票数 1
EN

Stack Overflow用户

发布于 2011-04-26 22:19:27

通常,我在前缀标题中导入此类类(这包括我在整个应用程序范围内使用的对象的类别)。前缀标头中的所有导入都是应用程序范围的。默认情况下,iOS projects中的前缀题头如下:

代码语言:javascript
复制
appName_Prefix.pch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5790658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档