我有以下代码在UITableViewCell中绘制文本,它可以正常工作以绘制并返回文本,但位于UITableViewCell的中心。所以我给了它正确的对齐,但是没有用!

UIColor * textColor = [UIColor blackColor];
if (self.selected || self.highlighted){
    textColor = [UIColor whiteColor];
}
else
{
    [[UIColor whiteColor] set];
    UIRectFill(self.bounds);
}

[textColor set];

UIFont * textFont = [UIFont boldSystemFontOfSize:14];

CGSize textSize = [text sizeWithFont:textFont constrainedToSize:rect.size];

[text drawInRect:CGRectMake((rect.size.width / 2) - (textSize.width / 2),
                            (rect.size.height / 2) - (textSize.height / 2),
                            textSize.width,
                            textSize.height)
        withFont:textFont
   lineBreakMode:UILineBreakModeWordWrap
       alignment:UITextAlignmentRight];

最佳答案

您是否检查了传递给CGRectdrawInRect:?您正在CGRect的中心显式创建rect。它应该是:

[text drawInRect:CGRectMake(rect.origin.x,
                            (rect.size.height / 2) - (textSize.height / 2),
                            rect.size.width, textSize.height)
        withFont:textFont
   lineBreakMode:UILineBreakModeWordWrap
       alignment:UITextAlignmentRight];

关于ios - 文本对齐drawInRect不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16295016/

10-09 22:26