请帮助..我不确定要开始
..我如何在我的 UITextView 中显示带有圆圈的数字
像 1 2 3 4 ......但每个数字都在一个圆圈内,例如http://openclipart.org/people/gsagri04/GS_Numbers.svg
我想从数组中获取数字并在屏幕上显示它们....但是每个数字都像乐透数字一样生活在一个圆圈内
@那一刻我只有一个数组 [1,2,3,4],...一个按钮.....和 UItextView 来显示最终输出
xcode 4.
请帮助..我不确定要开始
..我如何在我的 UITextView 中显示带有圆圈的数字
像 1 2 3 4 ......但每个数字都在一个圆圈内,例如http://openclipart.org/people/gsagri04/GS_Numbers.svg
我想从数组中获取数字并在屏幕上显示它们....但是每个数字都像乐透数字一样生活在一个圆圈内
@那一刻我只有一个数组 [1,2,3,4],...一个按钮.....和 UItextView 来显示最终输出
xcode 4.
如果我正确理解您的需求,您希望在 textview 中显示以下特殊字符:
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳</p>
最简单的方法是复制+粘贴这些字符,并替换您需要在textview中显示的内容字符串中的数字字符。为了代码重用,您可以编写一个 NSString 类别方法来处理这项工作。
@Chris Chen 的解决方案非常漂亮,因为您可以随时随地更改角色。但是如果你不想使用这些字符,你可以使用下面的代码在你的 textView 中添加圆圈。
UITextPosition *pos = textView.endOfDocument;// textView ~ UITextView
for (int i=0;i<words*2-1;i++){// *2 since UITextGranularityWord considers a whitespace to be a word, words = number of words in the textView.
UITextPosition *pos2 = [textView.tokenizer positionFromPosition:pos toBoundary:UITextGranularityWord inDirection:UITextLayoutDirectionLeft];
UITextRange *range = [textView textRangeFromPosition:pos toPosition:pos2];
CGRect resultFrame = [textView firstRectForRange:(UITextRange *)range ];
if (check whether word at this text position is a number){
UIView* circleView = [[UIView alloc] initWithFrame:resultFrame];
circleView.backgroundColor = [UIColor clearColor];
circleView.layer.borderColor = <color of your choice, probably same as text color>;
circleView.layer.borderWidth = <the width you want to set the border thickness to>;
circleView.layer.cornerRadius = <a float value that makes the rectangle look like a circle>;
circleView .tag = 125;
[textView circleView ];
}
pos = pos2;
}
代码应该放在 UITextView 委托方法 textViewDidChange 中。并确保在所有这些代码之前删除圆形视图,因此标签(125)。