0

私は次のことを達成したい:

  1. 私は2つの配列を持っています

     NSMutableArray *languageArray=[[NSMutableArray alloc]initWithObjects:@"Chinese bla blub",@"Spanish",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian",@"Japanee",@"German",@"German",@"German",@"German",@"German",nil];
    
     NSMutableArray *languageArray2=[[NSMutableArray alloc]initWithObjects:@"Hier kommt nun was ganz langes, jetzt mach ich das noch länger, damit der scheiß auch wirklich funktioniert.",@"Spanish jetzt hist hier auch mehr drin das sieht ja super aus wieviel bekomme ich den hier rein ",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian ajkslasdöadfnaklsdmnklsd",@"Japanese",@"German",@"German",@"German hier steht jetzt was ganz langes drin",@"German",@"German",nil];
    
  2. 私はUIScrollView

  3. ご覧のとおりObjectAtIndex:0、両方の配列の my は、長さだけでなく内容も異なります

  4. My Array の各オブジェクトに、Array 1 のラベルを画面の左側に設定し、もう 1 つはラベル 1 の最後から開始するように設定します。

この写真のように。

このリンクを参照してください

それ、どうやったら出来るの?

4

1 に答える 1

0

UILableこのメソッドを使用して、動的な高さを設定できます。

-(float) calculateHeightOfTextFromWidth:(NSString*) text: (UIFont*)withFont: (float)width :(UILineBreakMode)lineBreakMode
{
[text retain];
[withFont retain];
CGSize suggestedSize = [text sizeWithFont:withFont constrainedToSize:CGSizeMake(width, FLT_MAX) lineBreakMode:lineBreakMode];

[text release];
[withFont release];

return suggestedSize.height;
}

以下のように使用します。

UILabel *lblAddress = [[UILabel alloc]init];
[lblAddress setFrame:CGRectMake(110, 31, 200, 50)];        
lblAddress.text = @"your Text ";
lblAddress.lineBreakMode = UILineBreakModeWordWrap;
lblAddress.numberOfLines = 0;
lblAddress.font = [UIFont fontWithName:@"Helvetica" size:12];

lblAddress.frame = CGRectMake(lblAddress.frame.origin.x, lblAddress.frame.origin.y, 
                         200,[self calculateHeightOfTextFromWidth:lblAddress.text :lblAddress.font :200 :UILineBreakModeWordWrap] ); 

lblAddress.textColor = [UIColor darkGrayColor];

[self.view addSubview:lblAddress];

そして、次UIScrollView'sのようにコンテンツサイズを設定します..

float fscrview = lblAddress.frame.origin.y + lblAddress.frame.size.height + 20;
yourScrollView.contentSize=CGSizeMake(320, fscrview);
于 2013-03-28T12:26:23.463 に答える