2010-09-26 122 views
7

有没有什么办法可以在iphone中创建项目符号列表?iphone项目符号列表

如果您复制并粘贴项目符号点列表到IB中的UITextView然后它出现。无论如何以编程方式执行此操作?

谢谢

汤姆

+0

是的,它的工作原理 - 如果你复制并从字粘贴代码也是有效的(我假设是因为它的性质相同),但是因为没有格式和不能保证支持,我决定你是最好的和“最真实”的答案。但是,在我的应用程序中,我使用了第二个答案。 – 2010-09-28 16:06:04

+0

https://codeload.github.com/eyalc/ECListView/zip/master – Hemang 2013-10-23 17:28:47

回答

4

据我知道做到这一点(和几乎任何其他格式的富文本)的唯一途径在iPhone上是使用一个UIWebView并插入HTML码样这样的:

<ul> 
    <li>Bullet</li> 
</ul> 

在回答您的意见,UIWebViews中可以 “美化”,由下面的代码和平:

for(UIView* v in webView.subviews){ 
    if([v isKindOfClass:[UIScrollView class] ]){ 

     //disable bouncing 
     UIScrollView* sv = (UIScrollView*) v; 
     sv.alwaysBounceVertical = NO; 
     sv.alwaysBounceHorizontal = NO; 

     //disable scroll-shadows 
     for (UIView *subView in [sv subviews]) 
      if ([[[subView class] description] isEqualToString:@"UIImageView"]) 
       subView.hidden = YES; 
    } 
} 

我还没有提交这个,但我想它应该是“AppStore安全”。

+1

我讨厌UIWebViews - 他们给我那个丑陋的“反弹”排水沟在顶部和底部。 :(但是,谢谢 – 2010-09-26 18:17:25

+0

我分享你对WebViews的感受,但它们可以改进。看看我编辑的文章 – Phlibbo 2010-09-26 18:57:38

+3

迭代UIWebView的子视图被认为是一个私有API。不要认为它会被接受 – rpetrich 2010-09-27 04:09:11

38

“子弹”字符在Unicode代码点U + 2022。您可以在字符串中使用@"\u2022"[NSString stringWithFormat:@"%C", 0x2022]

“换行”字符位于Unicode代码点U + 000A处,并用作UIKit的换行符。您可以在字符串中使用它@"\n"

举例来说,如果你有一个字符串数组,你可以做一个项目符号列表像这样的东西:

NSArray * items = ...; 
NSMutableString * bulletList = [NSMutableString stringWithCapacity:items.count*30]; 
for (NSString * s in items) 
{ 
    [bulletList appendFormat:@"\u2022 %@\n", s]; 
} 
textView.text = bulletList; 

它不会缩进线像一个“正确”的字处理器。如果您的列表项目包含换行符(但您期望什么?),则会发生“不好的事情”。

(苹果不保证“为\ uXXXX”转义的NSString文字工作,但在实践中,他们做,如果你使用苹果的编译器。)

+0

这是辉煌的(只要它工作):)谢谢。 – 2010-09-26 18:17:03

+0

你好,这是很好的。 – 2013-01-31 11:05:27

+0

我无法使缩进正常工作。子弹只打印在同一行:“* Text * Text2”。有没有解决这个问题? – piperchester 2013-03-11 14:35:45

相关问题