高さの異なるセルでUITableViewを作成しました。 各セルにaccessoryView(UIImageView)を添付しました。UITableViewCell accessoryセルの高さでの位置の変更
セルの高さによってはアクセサリタイプの位置が異なります(添付画像参照)。 どうすれば修正できますか?
どのテーブルビューでも正常なようです。答えは見つかりませんでした。
ありがとうございました。 http://i.stack.imgur.com/kKOn0.png
UPDATE:マイcellForRowAtIndexPath:
NSDictionary *currentTime = [listOfTimes objectAtIndex:indexPath.row];
UITableViewCell *cell;
if([[currentTime objectForKey:@"freq"] intValue] > 0) cell = [self getCellFreqContentView:@"CellFreq"];
else cell = [self getCellContentView:@"Cell"];
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
UILabel *lblTemp1 = (UILabel *)[cell viewWithTag:1];
UILabel *lblTemp2 = (UILabel *)[cell viewWithTag:2];
if([[currentTime objectForKey:@"freq"] intValue] > 0) {
lblTemp1.text = [NSString stringWithFormat:@"%@\n\n%@", [dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:[[currentTime objectForKey:@"arrival_time_seconds"] doubleValue]]],[dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:[[currentTime objectForKey:@"departure_time_seconds"] doubleValue]]]];
UILabel *lblTemp3 = (UILabel *)[cell viewWithTag:3];
UILabel *lblTemp4 = (UILabel *)[cell viewWithTag:4];
lblTemp3.text = @"↓";
lblTemp4.text = [NSString stringWithFormat:NSLocalizedString(@"A pass every %i minutes", nil), [[currentTime objectForKey:@"freq"] intValue]/60];
} else {
lblTemp1.text = [dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:[[currentTime objectForKey:@"departure_time_seconds"] doubleValue]]];
}
lblTemp2.text = [currentTime objectForKey:@"trip_headsign"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIView *vv = [[UIView alloc] initWithFrame:cell.frame];
if(indexPath.row == [ScheduleManager getRowForTime:listOfTimes] && isCurrentPeriod == TRUE) {
vv.backgroundColor = [BKColor colorWithHexString:@"54B8BB"];
}
// SPECIAL CASES
if([[currentTime valueForKey:@"runoff"] count] > 0 && useExceptions == TRUE) {
// ACCESSORY
cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"times-special.png"]];
}
cell.backgroundView = vv;
return cell;
}
あなたはこの画像が見えるようにしたいどうすればよい:
おそらく最良の方法は、UITableViewCellのサブクラスを、そしてlayoutSubviewsメソッドをオーバーライドするのですか? – Legolas
アクセサリは通常、セル内で垂直方向の中央に配置され、同じX軸値ですべて正しく整列する必要があります。 –
あなたの 'cellForRowAtIndexPath'を提供してください。 – Legolas