-3
  NSString *city2=[[NSString alloc]init];
  city2=[NSString stringWithFormat:@"the city orlando"];
  NSString *trimmedString = [city2 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
  NSLog(@"%@", trimmedString)

   trimmedString=[NSString stringWithFormat:@"%@, ",trimmedString];

   CGSize constraint4 = CGSizeMake(650, 2000.0f);

  CGSize size4 = [city2 sizeWithFont: [UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:constraint4 lineBreakMode:UILineBreakModeWordWrap];
   city = (UILabel *)[cell viewWithTag:115];

   [city setNumberOfLines:0];
   city.frame = CGRectMake(150,codetype.frame.size.height+codetype.frame.origin.y, size4.width, size4.height);          
   [city setText: [NSString stringWithFormat:@"%@",trimmedString]];                

私は都市オーランドの代わりに都市のみを取得しています。これは私のプロジェクトの小さな部分です。

実際には、文字列をラベルに割り当てていますが、ラベルの文字列全体を取得できませんでした。ここで line3 はUILabel、city ラベルの上にある別のものです。

4

4 に答える 4

0

このコードには多くの問題がありますが、主な問題は文字列のサイズの計算にあるようです。のサイズを取得していますがcity2、ラベルのテキストを に設定していますtrimmingString。また、計算に使用されるフォントは、ラベルのフォントとは異なる場合があります。それらを同じにします。

多くのクリーンアップと修正を含むコードは次のとおりです。

NSString *city2 = @"the city orlando";
NSString *trimmedString = [city2 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", trimmedString)

trimmedString = [NSString stringWithFormat:@"%@, ", trimmedString];

CGSize constraint4 = CGSizeMake(650, 2000.0f);

UIFont *font = [UIFont fontWithName:@"Helvetica" size:12];
CGSize size4 = [trimmedString sizeWithFont:font constrainedToSize:constraint4 lineBreakMode:NSLineBreakByWordWrapping];
city = (UILabel *)[cell viewWithTag:115];

city.font = font;
[city setNumberOfLines:0];
city.frame = CGRectMake(150, codetype.frame.size.height + codetype.frame.origin.y,  size4.width, size4.height);

[city setText:trimmedString];

への余分な呼び出しはすべて避けてくださいstringWithFormat:

于 2013-02-20T05:27:56.503 に答える
0

これを取得していますか ->都市...ではなく、これ ->都市オーランドですか? この. size4.width_ UILabel_ city.frame_ size4.width + 100.0fこれはあなたのコードの私のバージョンです。

NSString *city2 = @"the city orlando";
NSString *trimmedString = [city2 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];                                                                                                 
NSLog(@"%@", trimmedString);

trimmedString=[NSString stringWithFormat:@"%@,",trimmedString];

CGSize constraint4 = CGSizeMake(650, 2000.0f);

CGSize size4 = [city2 sizeWithFont: [UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:constraint4 lineBreakMode:UILineBreakModeWordWrap];
city = [[UILabel alloc] init]; //(UILabel *)[cell viewWithTag:115];

[city setNumberOfLines:0];
city.frame = CGRectMake(150, 150, size4.width + 100.0f, size4.height + 10.0f);


[city setText: [NSString stringWithFormat:@"%@",trimmedString]];  

[self.view addSubview:city];
于 2013-02-20T05:18:04.417 に答える
0

UILabel文字列の幅に比べて文字列の幅が小さいため、文字列全体がラベルに表示されません。したがって、コードの幅を大きくするUILabelとうまくいきます。

このコードを置き換えます

city.frame = CGRectMake(150,codetype.frame.size.height+codetype.frame.origin.y, size4.width, size4.height);

city.frame = CGRectMake(150,codetype.frame.size.height+codetype.frame.origin.y, size4.width+100, size4.height);
于 2013-02-20T05:21:18.683 に答える
0

cityラベルが小さすぎてテキストに収まらないようです。それにはさまざまな問題がある可能性がありますが、ラベルで計算すると、cityラベルにHelvetica 12size4が設定されていない可能性があります。また、city2 のサイズを取得していますが、テキストを trimmedString に設定していることにも注意してください。

CGSize size4 = [city2 sizeWithFont: [UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:constraint4 lineBreakMode:UILineBreakModeWordWrap];

経由で確認できます

[city setColor:[UIColor redColor]];

そして、何が起こるか見てください。

または、すばやく交換して確認するには

CGSize size4 = [city2 sizeWithFont: [UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:constraint4 lineBreakMode:UILineBreakModeWordWrap];
city = (UILabel *)[cell viewWithTag:115];

city = (UILabel *)[cell viewWithTag:115];
CGSize size4 = [trimmedString sizeWithFont: city.font constrainedToSize:constraint4 lineBreakMode:UILineBreakModeWordWrap];
于 2013-02-20T05:21:27.300 に答える