2010-09-26 159 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

相關問題