我如何将Tortuga 22 NinePatch库包含在我的XCode项目中?

时间:2010-06-03 22:33:22

标签: iphone objective-c nine-patch

首先,终于有了对iPhone的NinePatch支持,感谢Tortuga 22团队的支持。不幸的是,我无法将他们的库添加到我的项目中。

如果我只是将源文件拖放到我的项目中,我会得到大量的“没有这样的文件或目录” - 错误。如果我将libNinePatch.a文件作为外部框架引用,我会得到相同的结果。

这样做的正确方法是什么?他们没有任何指示,所以我想必须有一个相当直接的方法来做到这一点。

提前致谢。
// Abeansits

5 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但只是为了帮助那些在目标c中搜索ninePatch的人,我想通知ios 5上的UIImage类,有一个方法可以做九个补丁。

来自UIImage reference

  

<强>讨论

     

您可以使用此方法为图像或添加上限   更改图像的现有上限。在这两种情况下,你得到   返回一个新图像,原始图像保持不变。

     

在缩放或调整图像大小的过程中,上限覆盖的区域是   没有缩放或调整大小。相反,像素区域未被盖子覆盖   在每个方向上都是平铺,从左到右和从上到下,以调整大小   图片。此技术通常用于创建可变宽度   按钮,保持相同的圆角但其中心区域   根据需要增长或缩小。为获得最佳性能,请使用平铺区域   这是一个1x1像素区域。

     

可用性适用于iOS 5.0及更高版本。

     

在UIImage.h中声明

如果您想要具有修复顶部的图像,请使用示例:

UIImage* image = [UIImage imageNamed:@"YourImage.png"];
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(25., 0, 0, 0)]

希望有所帮助。

答案 1 :(得分:1)

我只是想告诉大家仍然在努力解决这个问题,我已将podspec上传到CocoaPod的存储库。

这意味着如果您的项目使用CocoaPods(为什么不使用它?),您只需添加:

pod 'Tortuga22-NinePatch'

到你的Podfile,你将获得NinePatch支持。 (注意它仍然不兼容ARC,欢迎拉取请求!)

答案 2 :(得分:0)

您应该能够将文件添加到项目中。 this SO question的答案可能会有所帮助。

另外,请注意UIImage确实提供了可伸缩的图像。有关详细信息,请参阅-stretchableImageWithLeftCapWidth:topCapHeight:。如果您需要以实际的九种补丁格式阅读图像,这可能无法帮助您,可能是为了与Android应用程序共享资源,但这通常都是真正需要的。

答案 3 :(得分:0)

您是否在所需的类或prefix.pch文件中包含主头文件?

答案 4 :(得分:0)

如果你从GitHub下载他们的source package,你会发现他们已经包含了一个示例项目NinePatchDemo。检查这一点应该可以为您提供所需的所有信息。

您会看到他们刚刚将NinePatch Xcode项目放入了“其他来源”下的NinePatchDemo项目中。您可以以相同的方式将NinePatch项目拖放到您自己的项目中。您可以检查构建和目标设置,以确保包含构建所需的任何路径/库。

看起来您希望在目标的其他链接器标记中使用-all_load -ObjC,如果您的项目文件夹与ninepatch文件夹处于同一级别(如从github下载),您还需要将目标上的标题搜索路径设置为../NinePatch//**,如果您移动了任何文件夹,则会相应地改变。

除此之外我唯一可以看到的是,您当然需要在#import <TUNinePatch.h>

中加入标题

NinePatchDemo对我来说很好,所以我可以验证它们的来源是否有效。