繁体   English   中英

在TableViewCell中以编程方式将TextView右对齐

Align TextView to right programmatically in TableViewCell

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我无法在自定义TableViewCell中将texview右对齐。 我尝试使用NSTextAlignmentRight,但是根本不起作用。 我以编程方式调整了所有布局,也许我忘了一些复选框以取消在情节提要中的选择。 对不起,我的英语,希望您能理解!

这是我在cellForRowAtIndexPath中的代码:

        cell = [self.tablaChat dequeueReusableCellWithIdentifier:simpleTableIdentifierUser];

        if (cell == nil) {
            cell = [[ChatTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifierUser];
        }

        cell.mensajeUsuario2.text = [NSString stringWithFormat:@"%@", [[self.dict_mensajes valueForKey:@"mensaje"] objectAtIndex:indexPath.row]];

        NSString *dateAsString = [[self.dict_mensajes valueForKey:@"timestamp"] objectAtIndex:indexPath.row];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        NSDate *date = [formatter dateFromString:dateAsString];
        //[self convertirFecha:date];

        cell.labelUsuario2.text = [NSString stringWithFormat:@"%@ el %@", [[self.dict_mensajes valueForKey:@"nombre"] objectAtIndex:indexPath.row], [self convertirFecha:date]];

        cell.mensajeUsuario2.frame = CGRectMake(cell.mensajeUsuario2.frame.origin.x,
                                               cell.mensajeUsuario2.frame.origin.y,
                                               self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 25,
                                               cell.mensajeUsuario2.frame.size.height);

        cell.imagenUsuario2.frame = CGRectMake(self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 10,
                                                cell.imagenUsuario2.frame.origin.y,
                                                cell.imagenUsuario2.frame.size.width,
                                                cell.imagenUsuario2.frame.size.height);

        CGFloat fixedWidth = cell.mensajeUsuario2.frame.size.width;
        CGSize newSize = [cell.mensajeUsuario2 sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
        CGRect newFrame = cell.mensajeUsuario2.frame;
        newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
        cell.mensajeUsuario2.frame = newFrame;
        cell.mensajeUsuario2.scrollEnabled = NO;

        [cell.mensajeUsuario2.layer setBorderWidth: 1.0];
        [cell.mensajeUsuario2.layer setCornerRadius:8.0f];
        [cell.mensajeUsuario2.layer setMasksToBounds:YES];

        alturaCelda = cell.mensajeUsuario2.frame.size.height + cell.labelUsuario2.frame.size.height;
        cell.mensajeUsuario2.backgroundColor = Rgb2UIColorMediumLight(0, 0, 0);
        cell.mensajeUsuario2.textColor = Rgb2UIColorMask(255, 255, 255);

        cell.labelUsuario2.frame = CGRectMake(cell.labelUsuario2.frame.origin.x,
                                              alturaCelda - 10,
                                              self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 30,
                                              cell.labelUsuario2.frame.size.height);

        NSString *urlImagen = [NSString stringWithFormat:@"%@", [[self.dict_mensajes valueForKey:@"foto"] objectAtIndex:indexPath.row]];
        NSURL *imageURL = [NSURL URLWithString:urlImagen];

        UIImage *image;

        // 1. Check the image cache to see if the image already exists. If so, then use it. If not, then download it.

        if ([[ImageCache sharedImageCache] DoesExist:urlImagen] == true)
        {
            image = [[ImageCache sharedImageCache] GetImage:urlImagen];
            cell.imagenUsuario2.image = image;
        }
        else
        {
            dispatch_async(kBgQueue, ^{
                NSData *imgData = [NSData dataWithContentsOfURL: imageURL];
                if (imgData) {
                    UIImage *image2 = [UIImage imageWithData:imgData];
                    if (image2) {
                        dispatch_async(dispatch_get_main_queue(), ^{
                            ChatTableViewCell *updateCell = (id)[tableView cellForRowAtIndexPath:indexPath];
                            if (updateCell)
                                updateCell.imagenUsuario2.image = image2;
                            // Add the image to the cache
                            [[ImageCache sharedImageCache] AddImage:urlImagen :image2];
                        });
                    }
                }
            });

        }

        [cell.mensajeUsuario2 sizeToFit];
        [cell.mensajeUsuario2 layoutIfNeeded];
        cell.mensajeUsuario2.textAlignment = NSTextAlignmentRight;
1 个回复

我以这种方式解决了:我将“ cell.mensajeUsuario2.frame”声明移至底部,并将其更改为该声明。

cell.mensajeUsuario2.frame = CGRectMake(cell.imagenUsuario2.frame.origin.x - 10 - cell.mensajeUsuario2.frame.size.width,
                                                cell.mensajeUsuario2.frame.origin.y,
                                                cell.mensajeUsuario2.frame.size.width,
                                                cell.mensajeUsuario2.frame.size.height);
3 在Swift中以编程方式将UIImageView左右对齐

我正在使用带有消息气泡的聊天应用程序。 我已经弄清楚了如何根据发送消息的人有条件地格式化消息(颜色,大小等)。 但是,我很难让聊天气泡对准视图控制器的左侧或右侧。 现在,所有项目都向左对齐。 我已经搜索了SO,却找不到答案,所以我决定问。 更新:显示setCell函数的其余代码,该 ...

5 以编程方式创建的Label将无法右对齐

以编程方式创建标签(即不在设计器中)不会在我的表单上右对齐。 我创建了其中三个控件,但是它们继续从左侧而不是从右侧扩展: 理想情况下,我希望这些标签(由#包围)的分号对齐。 ...

2012-08-13 14:38:18 1 807   vb6
6 以编程方式在 TableRow 内对齐 TextView

我正在以编程方式创建 TextViews 和 TableRows,并且试图将其中一个 TextViews(名为 Status: 1 的)与 TableRow 中的右侧对齐。 当前结果: 预期结果: 代码: TableLayout,简称为 tableLayout,是用 XML 硬编码的。 ...

2020-06-15 01:33:46 1 22   android
7 以编程方式更改TextView对齐

我的RelativeLayout是这样的: ImageView (向后箭头) TextView (标题) ImageButton (关闭按钮) 第一个ImageView只是一个箭头 TextView可以更改,并且必须位于两个图像之间 第二个ImageView是一个 ...

9 1个TextView中的左右对齐文本

有在化合物抽拉选项TextView避免使用母体ViewGroup和ImageView旁边TextView 。 正如lint所说,这是整洁且性能更快的。 我正在尝试做类似的事情。 一个TextView ,其中包含2个文本,一个向左对齐,一个向后对齐以进行写入。 听起来很奇怪,但只允许使用单 ...

10 以编程方式添加的TextView的TextView对齐

我加入文本视图编程,出于某种原因,他们正在装载了所有在上面 ˚F彼此,而不是一个接一个。 尽管该问题非常适合LinearLayout,但我想在RelativeLayout中进行。 这是相关的xml: 和(希望)相关的片段代码: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM