-1

请帮助..我不确定要开始

..我如何在我的 UITextView 中显示带有圆圈的数字

像 1 2 3 4 ......但每个数字都在一个圆圈内,例如http://openclipart.org/people/gsagri04/GS_Numbers.svg

我想从数组中获取数字并在屏幕上显示它们....但是每个数字都像乐透数字一样生活在一个圆圈内

@那一刻我只有一个数组 [1,2,3,4],...一个按钮.....和 ​​UItextView 来显示最终输出

xcode 4.

4

2 回答 2

2

如果我正确理解您的需求,您希望在 textview 中显示以下特殊字符:

① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳</p>

最简单的方法是复制+粘贴这些字符,并替换您需要在textview中显示的内容字符串中的数字字符。为了代码重用,您可以编写一个 NSString 类别方法来处理这项工作。

于 2013-08-07T23:23:38.103 回答
0

@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)。

于 2013-08-07T23:47:23.793 回答