2010-09-26 12 views
7

Czy istnieje sposób na utworzenie listy punktów w iPhone?punkt listy punktowej dla iphone

Jeśli skopiujesz i wkleisz listę punktorów do UITextView w IB, to pojawi się. Czy mimo to można to zrobić programowo?

Dziękuję

Tom

+0

Tak, to działa - a jeśli skopiować i wkleić ze słowem tego działa również (zakładam, ponieważ jest to ta sama postać), ale ponieważ nie ma formatowania i nie ma gwarancji na wsparcie, zdecydowałem, że twoja była najlepszą i "najbardziej prawdziwą" odpowiedzią. Jednak w mojej aplikacji użyłem drugiej odpowiedzi. –

+0

https://codeload.github.com/eyalc/ECListView/zip/master – Hemang

Odpowiedz

4

O ile wiem, to jedyny sposób, aby osiągnąć ten (i prawie każdy inny sformatowany RTF) na iPhone jest w użyciu UIWebView i wstawić kod HTML jak to:

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

W odpowiedzi na twój komentarz, UIWebViews można "upiększony" brzmienie ciszy kodu:

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; 
    } 
} 

Nie przesłałem jeszcze tego, ale przypuszczam, że powinien to być "AppStore safe".

+1

Nienawidzę UIWebViews - dają mi tę paskudną "bounce" rynnę na górze i na dole. :(ale dziękuję –

+0

Dzielę się twoimi odczuciami na temat WebViews, ale można je ulepszyć Zobacz mój edytowany post! – Phlibbo

+3

Iterowanie przez subviews "UIWebView" jest uważane za prywatne API. Nie zakładaj, że będzie akceptowane – rpetrich

38

Znak "wypunktowania" znajduje się w punkcie kodowym U + 2022 Unicode. Możesz użyć go w ciągu znaków z @"\u2022" lub [NSString stringWithFormat:@"%C", 0x2022].

Znak "line feed" ma kod Unicode U + 000A i jest używany jako znak nowej linii UIKit. Możesz użyć go w ciągu znaków z @"\n".

Na przykład, jeśli miał tablicę łańcuchów, można zrobić listę punktowaną z czymś takim:

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

Nie będzie indent linie jak „właściwego” w edytorze tekstu. "Złe rzeczy" zdarzą się, jeśli elementy listy zawierają znaki nowej linii (ale czego oczekiwałeś?).

(Apple nie gwarantuje, że „\ uXXXX” ucieka pracę w literały NSString, ale w praktyce robią jeśli używasz kompilatora Apple.)

+0

to jest genialne (pod warunkiem, że działa) :) Dziękuję. –

+0

ya to jest doskonałe. To działa tak, jak chciał. –

+0

Nie udało mi się poprawnie wykonać wcięcia. Pociski są drukowane na tej samej linii: "* Tekst * Tekst2". Czy jest na to poprawka? – piperchester

Powiązane problemy