2012-04-26 13 views
8

Sözcüğü, UItableView'ın sağ tarafında görüntülenen bölüm dizinine sarmak istiyorum.Sözcüğü UITableViewSectionIndex içine sarmak mümkün mü?

Sorun şu ki, kelime uzunluğu artarsa ​​bölüm indeksi genişliği de artar ve tablo görünümü hücre içeriği görüntüleme boyutu azalır.Ve bölüm dizini dizi nesnesinin alt dizisini görüntülemek istemiyorum.Sonra tüm sözcüğü görüntülemek istiyorum Bölümde onu sarmak zorundayım.

-(NSArray*) sectionIndexTitlesForTableView:(UITableView *)tableView 
{ 
    NSMutableArray *array = [[NSMutableArray alloc] init]; 

    for (int i = 0; i <[keys count]; i++) { 
     NSString *str = [self.keys objectAtIndex:i]; 
      [array addObject:str]; 
    } 

    NSArray *a =[NSArray arrayWithArray:array]; 
    [array release]; 
    return a; 
} 

arrayIndextitle yöntemiyle dönen dizideki nesne uzun ve sözcük sarmak istiyorum.

Herhangi biri nasıl yapılabileceğini biliyor mu?

enter image description here

+0

kodunuzu sonrası Lütfen sorun daha iyi bir fikir için. –

+0

Bir bölüm dizini çok satırlı başlıklara bile izin veriyor mu? Şüpheliyim.Ama bunu, "@" Bir \ nTwo "gibi bir şey atayarak kontrol edebilir ve neler olduğunu görebilirsiniz. Çalışırsa, başlık dizelerini belirli bir genişliğe sığacak şekilde kesmek için kendi yönteminizi yazabilirsiniz. (Tablo başlıkları sadece düz vanilya NSStrings'i kabul ettiğinden, herhangi bir otomatik sarma mekanizmasının mevcut olması muhtemel değildir.) – Wienke

+0

\ n'yi kullanmadan önce web sayfası üzerinde çalışacağımı kontrol ettim – Warewolf

cevap

0

cevap aşağıdaki ancak hiçbir sorunuza arkasında sorunu çözmek gerekir gibi görünüyor.

Bu işlevi, TableView: viewForHeaderInSection: UITableViewDelegate protokolünde kullanırdım. Daha fazla bilgi burada UITableViewDelegate Docs belgelerinde bulunabilir. Not - tableView: heightForHeaderInSection: ayrıca uygulanmalıdır. Bu işlev kombinasyonu, numberOfLines öğesinin 0'a ayarlı olduğu bir UILabel alt görünümü, yani gereken sayıda ve metin, ihtiyacınız olan herhangi bir değere ayarlanmış bir görünüm döndürmenize olanak tanır.

+0

Fonksiyonların kombinasyonunu kullanmanın yolunu anlamıyorum. Lütfen açıklayın ... – Warewolf

+0

@Dave, bu onun sorduğu şey değil. Başlık görünümlerini değil, sağ taraftaki bölüm dizinini soruyor. Problemin için bir çözüm olduğundan şüpheliyim. –

+0

@ AngelGarcíaOlloqui Benim hatam –

0

Bölüm dizinlerini birden çok satıra kopyalamak mümkün değildir. Bu, varsayılan kullanıcı arayüzünde anlamlı olmaz. Bunu gerçekleştirmek için özel bir başlık en iyi oyundur.

yalnızca özel bir UIView

olarak kendi "bölümü endeksi görünümü" oluşturabilir

2

ve eazy

sadece tableview yüksekliğini kalk bunu, keyfine bölümlerin sayısını kirecini

daha sonra dokunmatik olay tespit

- (void)drawRect:(CGRect)rect 

yılında üzerinde bölüm başlığını çizmek

01 Dokunduğunuz bölüm
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

kalk, ardından da tableview üzerine koydu tableview yöntemini

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated; 

diyoruz, eazy yapılır!

0

Bölüm için özel başlık başlığı oluşturun. Burada etiketi kullanabilir ve başlığın uzunluğuna göre satır sayısını ona atayabilirsiniz. Ayrıca, bölüm üstbilgisinin yüksekliğini buna göre ayarlamanız gerekecektir.

0

NSMutableArray'a eklemeden önce 'str' seçeneğini işaretleyin, bir veya daha fazla sözcüğe sahip mi? ve istediğiniz ne kadar aralığını seçin ve her bölümün endeksinde göstermek istediğiniz, karakterlerin aralığını yapmak .. sizin dizideki

KULLANIMINA NSmakeRange ekleyin ..

+0

Üzgünüm ama kesilmiş kelimeleri göstermek istemiyorum, eğer lengthIndex Genişliği – Warewolf

+0

'u aşarsa bölüm indeksinde sözcüğü sarmak istiyorum, sonra sözcüğü kendiniz gibi sarmak için bir mantık yazınız –

+0

metninizden "boşluklar" ve sectionindex genişliğini elde edin. ve boşluk -Index genişliği için -5 veya +5 arasında eşleşiyorsa, sözcüğü bir sonraki yere kaydırın. –