小编Air*_*Ltd的帖子

我可以在iPhone应用程序中嵌入自定义字体吗?

这个问题涉及iOS 3.2之前的版本.从3.2开始,使用下面的samvermette答案很容易实现这个功能,我已经改变了接受的答案(从命令到samvermette)以反映这一点.我不能赞同这两个答案(除了upvotes),但它们都很好.

我想有一个应用程序包括一个自定义字体用于渲染文本,加载它,然后使用标准UIKit元素,如UILabel.这可能吗?

我在下面找到了链接:

但是这些要求我自己渲染每个字形,这有点太辛苦了,特别是对于多行文本.

我也发现帖子直截了当地表示这是不可能的,但没有理由,所以我正在寻找一个确定的答案.


编辑 - UIKit实验失败

我下载了Harrowprint.tff(从这里下载)并将其添加到我的Resources目录和项目中.然后我尝试了这段代码:

__PRE__

导致抛出异常.查看Finder中的TTF文件,确认字体名称为Harrowprint.


编辑 - 到目前为止已经有很多回复告诉我阅读关于X或Y的文档.我已经对所有这些进行了广泛的实验并且无处可去.在一个案例中,X结果仅与OS X相关,而不是在iPhone上.因此,我正在为这个问题设置一个赏金,我将奖励给第一个提供答案的人(仅使用文档化的API),他们会回答足够的信息以便在设备上运行.在模拟器上工作也是一个奖励.


编辑 - 似乎赏金自动奖励得票最多的答案.有趣.实际上没有人提供解决问题的答案 - 涉及编码自己的UILabel子类的解决方案不支持自动换行,这对我来说是一个必不可少的功能 - 尽管我想我可以扩展它来做到这一点.

fonts cocoa-touch ios

771
推荐指数
23
解决办法
24万
查看次数

如何在没有自定义单元格的情况下在UITableViewCell中包装文本

这是在iPhone 0S 2.0上.2.1的答案也很好,但我不知道有关表的任何差异.

感觉应该可以在不创建自定义单元格的情况下获取文本,因为默认情况下UITableViewCell包含a UILabel.我知道如果我创建一个自定义单元格,我可以使它工作,但这不是我想要实现的 - 我想了解为什么我当前的方法不起作用.

我已经发现标签是按需创建的(因为单元格支持文本和图像访问,所以它不会在必要时创建数据视图),所以如果我做这样的事情:

cell.text = @""; // create the label
UILabel* label = (UILabel*)[[cell.contentView subviews] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

然后我得到一个有效的标签,但设置numberOfLines(和lineBreakMode)不起作用 - 我仍然得到单行文本.UILabel文本中有足够的高度显示 - 我只是为高度返回一个较大的值heightForRowAtIndexPath.

cocoa-touch objective-c uikit iphone-sdk-2 ios

151
推荐指数
2
解决办法
10万
查看次数

从dict中删除带有空字符串的键的有效方法

我有一个字典,并希望删除所有有空值字符串的键.

metadata = {u'Composite:PreviewImage': u'(Binary data 101973 bytes)',
            u'EXIF:CFAPattern2': u''}
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

python dictionary

103
推荐指数
10
解决办法
8万
查看次数

在为iPhone编译时,Xcode设置了哪些#defines

我正在编写一些半便携式代码,并希望能够检测我何时编译iPhone.所以我想要类似的东西#ifdef IPHONE_SDK....

据推测,Xcode定义了一些东西,但我在项目属性下看不到任何东西,谷歌也没什么帮助.

macos xcode conditional-compilation ios

64
推荐指数
2
解决办法
3万
查看次数

如何衡量.NET中的代码性能?

我正在使用DateTime对一行C#代码进行一些真正的快速和脏的基准测试:

long lStart = DateTime.Now.Ticks;
// do something
long lFinish = DateTime.Now.Ticks;
Run Code Online (Sandbox Code Playgroud)

问题在于结果:

Start Time [633679466564559902]
Finish Time [633679466564559902]

Start Time [633679466564569917]
Finish Time [633679466564569917]

Start Time [633679466564579932]
Finish Time [633679466564579932]

...等等.

鉴于开始和结束时间相同,Ticks显然不够精细.

那么,我怎样才能更好地衡量绩效呢?

.net performance benchmarking

45
推荐指数
6
解决办法
2万
查看次数

列出Objective-C对象的选择器

我有一个对象,我想列​​出它响应的所有选择器.感觉这应该是完全可能的,但我找不到API.

objective-c selector

35
推荐指数
3
解决办法
2万
查看次数

iOS 8.0及更高版本(@ rpath/libswift_stdlib_core.dylib)仅支持可重定位的dylib(例如嵌入式框架)

我刚从Xcode 6 Beta 2升级到Xcode Beta 3,现在在构建项目时收到以下警告:

ld: warning: relocatable dylibs (e.g. embedded frameworks) are only supported on iOS 8.0 and later (@rpath/libswift_stdlib_core.dylib)
Run Code Online (Sandbox Code Playgroud)

这是一个警告,但似乎意味着我当前的设置不适用于iOS 7.1,这是我的部署目标.如何跟踪嵌入的框架,以及如何解决iOS <8.0的问题?

xcode ios xcode6

28
推荐指数
1
解决办法
1万
查看次数

iOS9:崩溃报告中的重复行导致symbolicatecrash卡住

不是问题,因为我已经找到了解决方法.我正在发布它,以便其他人可以利用我花在它上面的时间,并使用我建议的解决方法.

我有一些奇怪的崩溃报告 - 一行重复多次:

...
0x190e08000 -        0x190e49fff  Notes arm64  <f45c09ce977b3282ab0e879252dfebee> /System/Library/PrivateFrameworks/Notes.framework/Notes
0x190f9c000 -        0x190fa6fff  NotificationsUI arm64  <73dcb247ed183ce7bb330d7bb55f93bd> /System/Library/PrivateFrameworks/NotificationsUI.framework/NotificationsUI
0x190fa8000 -        0x190faafff  OAuth arm64  <c2658cb3208b342dbe1e91cea30ebdd5> /System/Library/PrivateFrameworks/OAuth.framework/OAuth
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff  ParsecSubscriptionServiceSupport arm64  <c70467637c9332c7b0be897200c9ccb1> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x191900000 -        0x191903fff …
Run Code Online (Sandbox Code Playgroud)

crash-reports symbolicatecrash ios ios9 xcode8

17
推荐指数
1
解决办法
1226
查看次数

NSThread和UIViewController交互

如果我生成一个新线程,然后在其中我将一个新控制器推到我的UINavigationController上,使用这样的代码......

(a)不工作

-(void)myCallbackInThread
{
    // move on...
    UIApplication* app = [UIApplication sharedApplication];
    [app changeView];
}
Run Code Online (Sandbox Code Playgroud)

然后我发现视图出现,但不响应用户输入.

如果我改变这样的代码

(b)工作

-(void)myCallbackInThread
{
    // move on...
    UIApplication* app = [UIApplication sharedApplication];
    [app performSelectorOnMainThread:@selector(moveToMain) withObject:nil waitUntilDone:FALSE];
}
Run Code Online (Sandbox Code Playgroud)

一切都运转正常.

任何暗示为什么?

iphone cocoa multithreading

5
推荐指数
1
解决办法
4241
查看次数

如何在iPhone上获取MCC和MNC

根据主题 - 是否有一个API可以在iPhone OS 2.1或更高版本上获得MCC/MNC?

iphone

5
推荐指数
1
解决办法
2万
查看次数

VC 6的命令行构建?

我已经习惯了使用VS2005和2008 - 使用msbuild等,但我继承了一组目前必须保留在vc6.0中的项目.我不喜欢在开发者工作室和建筑中打开每个项目.我更喜欢构建表单命令行(我正在自动化构建).这可能吗?

我已经尝试过nmake实用程序,但我仍然需要打开项目并保存/导出make文件.如果项目发生变化,这很乏味 - 每次我都要保存make文件.nmake似乎工作,但是当我在目录树中更改项目的位置时出现了问题(我从svn中检出了一个新的干净目录来尝试构建).它似乎有硬编码路径,但我必须检查 - 它可能是一个不同的问题.

还有其他选择吗?

最终我将这些迁移到2008年,但目前这不是一个选择.

command-line build visual-c++-6

3
推荐指数
2
解决办法
6817
查看次数

无法在多行nsstring上获得投影

我正在尝试使用投影来绘制多行文本,而不使用已弃用的API.它适用于单行.相关代码如下所示:

-(void)drawRect:(CGRect)rect
{
    NSMutableParagraphStyle *paragraph =  [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraph.lineBreakMode = NSLineBreakByWordWrapping;
    paragraph.alignment = NSTextAlignmentCenter;

    UIFont *f = [UIFont systemFontOfSize:20.0];
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    [attributes setValuesForKeysWithDictionary:@{ NSFontAttributeName : f,
                                                  NSParagraphStyleAttributeName : paragraph,
                                                  NSForegroundColorAttributeName    : [UIColor blueColor] }];
    NSShadow * shadow = [NSShadow new];
    shadow.shadowOffset = CGSizeMake(4,4);
    shadow.shadowColor = [UIColor redColor];

   [attributes setValue:shadow forKey:NSShadowAttributeName];

    rect.origin.y = 100;
    [@"test string on one line" drawInRect:rect withAttributes:attributes];

    rect.origin.y = 150;
    [@"test string spanning more than one line" drawInRect:rect withAttributes:attributes];
}
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

iPhone 6在多行文字上没有阴影

我在iPhone 5(7.1.2),iPhone …

nsstring ios nsshadow ios8

3
推荐指数
1
解决办法
274
查看次数