検索

ホームページ  >  に質問  >  本文

objective-c - 用约束调整label,如何利用约束计算其父控件的动态高度

  1. 描述你的问题
    在storyboard上 拖一个view 设置好约束, 拖一个label ,设置左、上、宽度约束,label 文字变化的时候view 高度也要跟随变化,如何计算label文字变化

  2. 贴上相关代码

-(void)touchesBegan:(NSSet<UITouch > )touches withEvent:(UIEvent *)event
{

// self.oriangeView.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.oriangeView.bounds), CGRectGetHeight(self.label.bounds));

[self.oriangeView setNeedsLayout];
[self.oriangeView layoutIfNeeded];
// 得到cell的contentView需要的真实高度
CGFloat height = [self.oriangeView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

// 要为cell的分割线加上额外的1pt高度。因为分隔线是被加在cell底边和contentView底边之间的。
height += 1.0f;
NSLog(@"%f",height);

}

  1. 贴上报错信息

  2. 贴上相关截图

  3. 已经尝试过哪些方法仍然没解决(附上相关链接)

ringa_leeringa_lee2793日前668

全員に返信(1)返信します

  • 大家讲道理

    大家讲道理2017-05-02 09:20:30

    @interface ViewController ()
    @property (弱い、非アトミック) IBOutlet UILabel *label;
    @property (弱い、非アトミック) IBOutlet UIView *oriangeView;
    @property (弱い、非アトミック) IBOutlet NSLayoutConstraint *upConstraint;
    @property (弱い) 、非アトミック) IBOutlet NSLayoutConstraint *smallViewConstraint;

    @終了

    @実装 ViewController

    • (void)viewDidLoad {

      リーリー

      // [self.oriangeView レイアウトIfNeeded];

    // [self.oriangeView updateConstraints];

    }

    プラグママーク--- 根元字符串和字体求字符串高さ

    -(CGSize)stringSizeWithFont:(UIFont )フォント文字列:(NSString )文字列幅:(CGFloat)width
    {

    リーリー

    }
    -(void)touchesBegan:(NSSet<UITouch > )toucheswithEvent:(UIEvent *)event
    {

    リーリー

    }

    返事
    0
  • キャンセル返事