Hello world????
Run Code Online (Sandbox Code Playgroud)
????dlrow olleH
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,但没有一个给我正确的答案。
这惨败:
Hello world????
Run Code Online (Sandbox Code Playgroud)
这有点有效,但它???分为 4 个不同的表情符号:
????dlrow olleH
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个问题中的所有答案,但没有一个有效。
有没有办法获得所需的输出?
我用这个获得字符串的文本大小
textSize = [[tempDict valueForKeyPath:@"caption.text"] sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(280, CGFLOAT_MAX) lineBreakMode: NSLineBreakByWordWrapping];
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是,如果字符串只包含表情符号,我的应用程序崩溃.有没有一种简单的方法来检查表情符号,或者我是否必须创建一个包含所有可能的表情符号的数组,然后使用它来检查它们?
错误:
-[NSNull sizeWithFont:constrainedToSize:lineBreakMode:]: unrecognized selector sent to instance 0x3aa88a60
if ([tempDict valueForKeyPath:@"caption.text"]){
NSLog(@"%@", [tempDict valueForKeyPath:@"caption"]);
//Measure the message label box height
textSize = [[tempDict valueForKeyPath:@"caption.text"] sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(280, CGFLOAT_MAX) lineBreakMode: NSLineBreakByWordWrapping];
int height = 320 + 20 + textSize.height;
[cellHeight addObject:[NSNumber numberWithInt:height]];
}
Run Code Online (Sandbox Code Playgroud) 如何计算字符串或文本行中的表情符号并显示输出,文本行或字符串中有多少个表情符号?
例如: "Hello there"
输出应该是: 7
在iOS 8.3中,Apple更新了一堆表情符号,我想知道是否可以更快地将所有表情符号放入数组中.
如:
let emojiArrays = ["","",...] or plist or something else.
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来用Swift字符串中的描述替换表情符号字符.
例:
输入
"This is my string "
我想替换以获取:
产量
"This is my string {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}"
到目前为止,我正在使用MartinR对此答案的原始代码修改的代码,但只有在我处理单个字符时它才有效.
let myCharacter : Character = ""
let cfstr = NSMutableString(string: String(myCharacter)) as CFMutableString
var range = CFRangeMake(0, CFStringGetLength(cfstr))
CFStringTransform(cfstr, &range, kCFStringTransformToUnicodeName, Bool(0))
var newStr = "\(cfstr)"
// removing "\N" from the result: \N{SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
newStr = newStr.stringByReplacingOccurrencesOfString("\\N", withString:"")
print("\(newStr)") // {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一个方法来检测字符串中的网址,并返回网址和可以找到它们的范围.一切都很完美,直到字符串上有表情符号.例如:
"I'm gonna do this callenge as soon as I can swing again \n http://youtu.be/SW_d3fGz1hk"
Run Code Online (Sandbox Code Playgroud)
由于表情符号,从文本中提取的URL是http://youtu.be/SW_d3fGz1而不是http://youtu.be/SW_d3fGz1hk.我认为最简单的解决方案是用空格字符替换字符串上的表情符号(因为我需要范围对于某些文本样式的东西是正确的).问题是,使用Swift非常难以实现(很可能我的Swift String API缺乏能力).
我一直试图这样做,但似乎我无法从unicode点数组创建一个字符串:
var emojilessStringWithSubstitution: String {
let emojiRanges = [0x1F601...0x1F64F, 0x2702...0x27B0]
let emojiSet = Set(emojiRanges.flatten())
let codePoints: [UnicodeScalar] = self.unicodeScalars.map {
if emojiSet.contains(Int($0.value)) {
return UnicodeScalar(32)
}
return $0
}
return String(codePoints)
}
Run Code Online (Sandbox Code Playgroud)
我是否以错误的方式处理这个问题?取代表情符号是最好的解决方案吗?如果是这样,我该怎么办?
我希望能够在Swift中获得所有可用emojis的数组.我所说的是所有当前可以访问设备的.就像Apple添加了一些新的表情符号一样,我希望不必更改任何代码,而新的表情符号只是添加到数组中与其他所有表情符号一起添加.
如果无法获得更新的表情符号,那么如何将所有当前表情符号放入一个数组(或者可能是一个.plist文件,然后我可以加载到一个数组中),这样我就可以在代码中访问它们了?
emoji ×5
swift ×4
ios ×3
string ×3
javascript ×2
arrays ×1
emoticons ×1
objective-c ×1
sizewithfont ×1
unicode ×1
xcode ×1