テキストを 2 行以上にできるようにラベルを固定幅に設定したいのですが、UITableViewCell
別のビューを表示するためにセルの右側に常にスペースを確保します。
これまでのところ、これを試してみましたが、うまくいきません。ダーンドセルUILabel
全体をちょうど横切って走っています。テキストが 2 行目に折り返される前に、セルの 3/4 程度に到達するように制限したいと考えています。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyle)UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
[cell.textLabel setLineBreakMode:NSLineBreakByWordWrapping];
cell.textLabel.minimumScaleFactor = 0;
[cell.textLabel setNumberOfLines:0];
[cell.textLabel setFont:[UIFont boldSystemFontOfSize:FONT_SIZE]];
[cell.textLabel setBackgroundColor:[UIColor clearColor]];;
NSString * labelText = myString; // lets just pretend this works. I have somethign else here.
CGSize constraint = CGSizeMake((CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2) - 100.0f), 20000.0f); // Ultimate cell
CGSize size = [labelText sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
[cell.textLabel setText:labelText];
[cell.textLabel setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2) - 180.0f, MAX(size.height, 36.0f))]; // Lets me get the height of the text, supposedly.
}
// more stuff....
}