0

UITableViewセルの高さを計算するための次のコードがあります。

  UIFont *textFont = [SettingsManagerUI defaultFontItalicWithSize:14];

  UIView *tempView = [[UIView alloc] init];

  UITextView *locationText = [[UITextView alloc] init];
  UITextView *moreInfoText = [[UITextView alloc] init];

  [tempView addSubview:locationText];
  [tempView addSubview:moreInfoText];

  [locationText setFont:textFont];
  [moreInfoText setFont:textFont];

  NSString *locationDetails = [MembersSavePartnerDetailsMoreInfoTableCell generateLocationTextWithPartner:partner inLocation:location];
  locationText.text = locationDetails;

  NSString *moreInfo = partner ? partner.partnerDescription : location.partner.partnerDescription;
  moreInfoText.text = moreInfo;

  float locationTextHeight = locationText.contentSize.height;
  float moreInfoTextHeight = moreInfoText.contentSize.height;

iOS 5.1.1では、locationTextHeightは88とmoreInfoTextHeight= 52です。iOS6では、高さはそれぞれ1420と2482です。

iOS 6で高さが異なるのはなぜですか?問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

この問題は、UITextView をフレームで初期化していないことが原因でした。

UITextView *locationText = [[UITextView alloc] initWithFrame:CGFrameMake(0,0,200,20)];
UITextView *moreInfoText = [[UITextView alloc] initWithFrame:CGFrameMake(0,0,200,20)];

iOS 6 より前では、UITextView には幅が 0 より大きい既定のフレームが必要でした。

于 2012-11-29T22:49:02.993 に答える