【问题标题】:How to fix changing constraints and dynamic UITableviewCell height?如何修复不断变化的约束和动态 UITableviewCell 高度?
【发布时间】:2019-05-31 05:51:12
【问题描述】:

我试图让 UITableViewCell 可以与 UITextView 一起显示或不显示 UIImageView。如果我只有文本视图,没问题,单元格会相应地改变高度。但是,当我尝试在图像更改大小时更新高度(我通过将其设置为 hidden = YES 并将高度约束更新为一个较小的值来隐藏它),需要更新文本以具有正确的效果。

我可能不清楚,所以这是实际问题:

还有代码:

 -(void)textViewDidChange:(UITextView *)textView{

    CGFloat startHeight = self.textView.frame.size.height;
    CGFloat calcHeight = [self.textView sizeThatFits:self.textView.frame.size].height;

    if (startHeight != calcHeight) {
        [UIView setAnimationsEnabled:NO];
        [self.tableView beginUpdates];
        [self.tableView endUpdates];
        [UIView setAnimationsEnabled:YES];
    }


}


    -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

            if([text isEqualToString:@"\n"])
                [textView resignFirstResponder];

            return YES;
            }


        - (IBAction)imgButtonPushed:(id)sender {

            //self.imageView.hidden = !self.imageView.hidden;
            dispatch_async(dispatch_get_main_queue(), ^(void){
                [self.tableView beginUpdates];
                if(self.imageView.hidden){
                    self.imageConstraintHeight.constant = 200;
                    self.imageView.hidden = NO;
                }else{
                    self.imageView.hidden = YES;
                    self.imageConstraintHeight.constant = 4;
                }

                [self.contentView setNeedsLayout];
                [self.contentView layoutIfNeeded];

                [self.tableView endUpdates];

            });

        }

有谁知道我怎样才能有一个流畅的工作效果? 谢谢!

【问题讨论】:

  • 您对要锚定在 textview 下方的 imageView 有限制吗?
  • 是的,我认为所有的约束都很好。
  • 就个人而言,我会考虑使用两个不同的单元格(纯文本和测试+图像),然后切换单元格以添加/删除图像。

标签: ios objective-c uitableview uiimageview uitextview


【解决方案1】:

原来我的图像视图和 UITableViewCell 图像视图的名称有冲突。所以我将 self.imageView 替换为 self.pictureView ,现在一切正常。 我希望有一天这会对某人有所帮助^^

【讨论】:

    猜你喜欢
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多