我对如何在 iOS 项目的文本中使用 SF 符号感到困惑。我有一个 UIButton 使用一个符号就好了UIImage systemImageNamed:。我想在另一个视图中显示有关该按钮的消息和一些文本。我认为我应该能够使用对该符号的 Unicode 引用,但它没有呈现。我的理解是这些符号位于私人使用区域中,但我无法使用类似的代码渲染它们@"Press the \U0010057C button."
我曾尝试将 SFSymbolsFallback.ttf 字体文件导入到我的项目中。
我希望看到符号呈现,但我得到一个 ? 反而。
Objective-C中是否有通用功能,我可以插入到我的项目中以简化连接NSString和ints?
我正在尝试比较名称,没有任何标点符号,空格,重音等.目前我正在做以下事情:
-(NSString*) prepareString:(NSString*)a {
//remove any accents and punctuation;
a=[[[NSString alloc] initWithData:[a dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding] autorelease];
a=[a stringByReplacingOccurrencesOfString:@" " withString:@""];
a=[a stringByReplacingOccurrencesOfString:@"'" withString:@""];
a=[a stringByReplacingOccurrencesOfString:@"`" withString:@""];
a=[a stringByReplacingOccurrencesOfString:@"-" withString:@""];
a=[a stringByReplacingOccurrencesOfString:@"_" withString:@""];
a=[a lowercaseString];
return a;
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要为数百个字符串执行此操作,我需要提高效率.有任何想法吗?
我一直在修改一些代码,以便在Mac OS X和iPhone OS之间工作.
我遇到了一些使用NSURL's URLByAppendingPathComponent:(在10.6中添加)的代码,有些人可能知道,这些代码在iPhone SDK中不可用.
我的解决方案是在OS之间使用这个代码
NSString *urlString = [myURL absoluteString];
urlString = [urlString stringByAppendingPathComponent:@"helloworld"];
myURL = [NSURL urlWithString:urlString];
Run Code Online (Sandbox Code Playgroud)
这样做的问题是NSString的stringByAppendingPathComponent:,似乎除去的/一个人从HTTP S:URL的一部分//.
这是预期的行为还是错误?
好的,所以我有点太快问上面的问题了.我重新阅读文档,它确实说:
请注意,此方法仅适用于文件路径(例如,不是URL的字符串表示)
但是,如果您需要将路径组件附加到iPhone上的URL,它不会为正确的方向提供任何指示...
我总是可以手动执行,添加/如果需要和额外的字符串,但我希望尽可能接近原始Mac OS X代码...
如何在Objective-C中将char转换为NSString?
不是以null结尾的C字符串,只是一个简单的char c = 'a'.
我在Objective-C中寻找一种好方法,用单词"and"替换字符串中的最后一个逗号.有什么建议?
"红色,绿色,蓝色,黄色"
变
"红色,绿色,蓝色和黄色"
当我使用字符串格式时,我可以多次访问一个参数而不再传递它吗?
例:
NSString *parameter1 = @"1";
NSString *parameter2 = @"2";
NSString *myString;
myString = [NSString stringWithFormat:@"I want to print parameter1 here: %@, parameter2 here: %@ and now access parameter1 again: %@ _without_ passing it again.",parameter1, parameter2, parameter1];
Run Code Online (Sandbox Code Playgroud)
有没有办法再次访问第一个参数而不再写",parameter1"?
我从一个csv文件中读取,并希望使用stringWithContentsOfFile分割我得到的长字符串,这是一个多行字符串,各个行代表csv文件中的行.我该怎么做呢?
给定一个字符串长度(具有相应的正确字体大小),我有一个方法可以为UITextView提供完美的大小:
- (NSInteger) heightOfLabel:(NSString*) string {
CGSize maximumLabelSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width - 40, FLT_MAX);
CGSize expectedLabelSize = [[NSString stringTrimmedForLeadingAndTrailingWhiteSpacesFromString:string]
sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:maximumLabelSize
lineBreakMode:NSLineBreakByWordWrapping];
return expectedLabelSize.height + 5;
}
Run Code Online (Sandbox Code Playgroud)
事实上,即使在iOS7中,它仍然让我完美契合.虽然现在它提出了一个警告方法,说我不应该使用'sizeWithFont:contrainedToSize:lineBreakMode'.
它现在说我应该使用-boundingRectWithSize:options:attributes:context:
这个方法对iOS7来说并不陌生,因此我认为可以在堆栈溢出时询问它,而不是去官方的苹果开发者论坛.
我有三个问题:
1)因为它被弃用了,这是否意味着我应该更换它,尽管它仍然有效?
2)我已经尝试了许多不同的boundingRectWithSize:方法,但是它们从来都不是完美的,它似乎总是略有不足(正如许多stackoverflow问题所指出的那样) - 是否有一个完美的替代方法,这种方法完全取而代之与我以前的方法一样,麻烦最小?
3)为什么要删除这种方法?是因为与其他方法的重叠吗?
我有一个NSURL,一个文件路径,我想在它的末尾添加一个NSString(文件名)我该怎么做?但在此之后我不希望整个事情成为一个NSURL.
谢谢.
nsstring ×10
objective-c ×7
cocoa ×3
cocoa-touch ×2
ios ×2
macos ×2
string ×2
append ×1
char ×1
deprecated ×1
iphone ×1
newline ×1
nsurl ×1
regex ×1
replace ×1
sf-symbols ×1
unicode ×1