我正在尝试查找文本字符串的物理像素大小。然后,我想使用此大小来设置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];

如您在上面看到的,我正在使用CGRectMake方法,该方法将4个参数作为CGFloat。但是,我传入的是CGSize,这导致运行时错误。

最佳答案

CGSize是一个结构:

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

只需使用tagStringLength.width即可获取您关心的电话号码。

而且我很确定您会遇到编译时错误,而不是运行时错误。

关于iphone - 将CGSize转换为CGFloat并使用它来调整RoundRectButton的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9089093/

10-09 17:45