我刚刚在NSGeometry.h中发现了NSRect辅助函数(即NSMidX,NSMaxX等......)
这些会使重复编码变得更容易。我知道NSMakeRect,NSMouseInRect,NSOffsetRect和许多其他人,但不知何故错过了有助于重新计算NSRect几何的函数。
答案 0 :(得分:16)
我发现NSStringFrom *()在记录CGRect,CGPoint等结构时很有用。
您可以在Apple的Foundation Functions Reference(Wayback Machine链接)中找到全面的概述。
答案 1 :(得分:5)
辅助功能,用左帽,填充和右帽绘制三部分图像。自定义按钮的理想选择
void NSDrawThreePartImage(NSRect frame,
NSImage *startCap,
NSImage *centerFill,
NSImage *endCap,
BOOL vertical,
NSCompositingOperation op,
CGFloat alphaFraction,
BOOL flipped
);
同时寻找 NSDrawNinePartImage
答案 2 :(得分:4)
这是我希望我在6个月前知道的。我正在创建我们的第一个iPhone应用程序,我想使用UIWebView控件创建一个基于HTML的简单帮助文件。
但是我无法弄清楚如何嵌入我存储在Bundle中的本地图像,我不希望用户必须具有互联网访问权限才能从服务器获取图像。
我很少知道我可以执行以下操作来从主要包中获取图像
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath];
[webView loadHTMLString:htmlContent baseURL: bundleBaseURL];
然后,HTML中的图像可以直接调用本地图像。
<img src="yourImageFromTheMainBundle.jpg" />
我不知道我可以使用Bundle的位置设置baseURL。
答案 3 :(得分:4)
NSPathUtilities.h中的大部分内容。两年前我确实知道这件事,但是当我第一次找到它时,我希望两年前我能看到它。 : - )
在某些时候,我浪费了相当多的时间,因为我不知道NSCountedSet,并且弄乱了我的字典替换。我知道有几个人做过同样的事情,因为他们根本不知道NSSet。另一个好的“隐藏”集合是CFBinaryHeap,它实现了一个优先级队列,但是没有NS等价物。
答案 4 :(得分:3)
我记得一个
+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius
确定如何手动绘制圆角矩形是一个非常好的练习。还有其他我现在已经习惯了。
答案 5 :(得分:3)
使用
从图案图像创建颜色[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];
答案 6 :(得分:-1)
这是一个快捷方式而不是我错过的库调用,但它符合线程的精神。
我使用的一个快捷方式是在NSLog调用中使用内联格式语句。
NSLog(@"x=%@", [someobject className]);
而不是更详细的
NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);