uitableview - IOS self-sizing tableView cell 情况下约束好一个控件后,如何再次改变它的约束?
PHP中文网
PHP中文网 2017-04-18 09:36:20
[iOS讨论组]

self-sizing使用情况下,我再uitableViewCell里通过auto layout布局了一个uilabel:

    self.tempLabel = [UILabel new];
    self.tempLabel.numberOfLines = 3;
    self.tempLabel.lineBreakMode = NSLineBreakByCharWrapping;
    [self.contentView addSubview:self.tempLabel];
    [self.tempLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.contentView);
    }];

正常情况下,Label会根据文字的量会自动换行,然后cell的高度也会跟着适应。但是现在我手动更改Label的高度:

- (void)load{
    [self.tempLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.contentView);
        make.height.equalTo(@100);
    }];
}

在Controller里的调用代码如下:

- (void)doLeftButtonAction{
    [self.tableView beginUpdates];
    [self.cell load];
    [self.tableView endUpdates];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    self.cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    self.cell.tempLabel.text = @"哈哈";
    return self.cell;
}

这种情况下编译器会提示:

现在我想问:我手动改变控件的约束,如何让cell跟着改变?

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
PHP中文网

你去看一下你用的AutoLayout库的API,可以把约束存下来,修改constant. 你写OC。如果是Swift对应的SnapKit是可以保留下constraint的,在修改对应的值,然后再reload一下cell就行了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号