7

テキスト文字列の物理的なピクセル サイズを見つけようとしています。次に、このサイズを使用して roundRectButton の長さを設定します。長さを取得するために使用しているメソッドは、CGSize を返します。それを CGFloat に変換するにはどうすればよいですか? あるいは、誰かがこれを達成するためのまったく別の方法を提案できるかもしれません。

これは私が現在持っているコードです:

// Note: tagAsString is a string of Tag names (Example "tag1, tag2, tag3")
// Note: Code to set this is not relevant to the question.

// get length of tagsAsString.
CGSize tagStringLength = [tagsAsString sizeWithFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0] forWidth:100.0 lineBreakMode:UILineBreakModeTailTruncation];

// size button to fit length of string
// Note: spotTags is a roundRectButton
cell.spotTags.frame = CGRectMake(96, 33, tagStringLength, 25);

// set the title of the roundRectButton to the tag string
[cell.spotTags setTitle:tagsAsString forState:UIControlStateNormal];

上記のように、CGFloat として 4 つの引数を取る CGRectMake メソッドを使用しています。ただし、実行時エラーの原因となっている CGSize を渡しています。

4

2 に答える 2

24

CGSizeは構造です:

struct CGSize {
   CGFloat width;
   CGFloat height;
};
typedef struct CGSize CGSize;

tagStringLength.width気になる番号を取得するために使用するだけです。

実行時エラーではなく、コンパイル時エラーが発生するはずです。

于 2012-02-01T00:27:09.410 に答える
5

CGSizeCGFloatwidth とCGFloatheightの 2 つの要素からなる構造体です。

コード例:

CGSize size;
CGFLoat width = size.width;
CGFLoat height = size.height;
于 2012-02-01T00:27:42.653 に答える