1

幅が 290 に設定されたテーブルのカスタム セクション ヘッダーをプログラムで作成しています。290 x 29 の PNG を含む UIImageView を直接使用すると、画像が正しく表示されます。ただし、UILabel を含めるようにリファクタリングしているので、カスタム テキストを作成できるので、UIImageView と UILabel を UIView に配置します。このバージョンを表示すると、画像が本来よりも約 3 ピクセル狭くなります。

言い換えると:

UIImageView * headerImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"subtable-header.png"]];
return headerImg; // this works correctly.  The image is "full size" at 290px wide.

ただし、これを試すと:

UIView * headerView = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 290.0f, 29.0f)] autorelease];
UIImageView * headerImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"subtable-header.png"]];
[headerView addSubview:headerImg];
[headerImg release];
return headerView;  // The image is about 3 pixels narrower 

headerView.contentMode プロパティを操作して、変更があることを確認しましたが、今のところうまくいきません。

もう 1 つ注意:

NSLog(@"view frame size: %1.2f %1.2f %1.2f %1.2f", headerView.frame.size.width, headerView.frame.size.height, headerView.frame.origin.x, headerView.frame.origin.y);
NSLog(@"image frame size: %1.2f %1.2f %1.2f %1.2f", headerImg.frame.size.width, headerImg.frame.size.height, headerImg.frame.origin.x, headerImg.frame.origin.y);

戻り値:

2009-11-20 11:35:42.323 MyApp[1350:20b] view frame size: 290.00 29.00 0.00 0.00
2009-11-20 11:35:42.323 MyApp[1350:20b] image frame size: 290.00 29.00 0.00 0.00
4

1 に答える 1

0

本当に解決策ではありませんが、これが最終的に機能したものです。UIView を完全に取り除き、UILabel を UIImageView のサブビューとして配置し、UIImageView を返しました。

于 2009-11-20T19:52:49.910 に答える