3

iOS7 より前は正常に動作していたアプリがありますが、現在、テーブルビュー セル (スタイル ライト ディテール) のテキストにスペースがあるという問題があります。テーブルビューの一部のセルには開示者インジケーターがあり、一部のセルには開示者インジケーターがないため、すべてのテキストを右に揃えるために、開示者インジケーターを持たないセルのテキストにいくつかの余分なスペースを追加しました. 日付フォーマッタを参照してください (YYYY の後のスペース):

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation : @"UTC"];
[formatter setTimeZone:timeZone];
[formatter setDateFormat:@"dd MMM YYYY    "]; // includes 4 spaces at the end for alignment
NSString *dateUTC = [formatter stringFromDate:[NSDate date]]; //get todays UTC date
DateCell.detailTextLabel.text = dateUTC;  

IOS7 でも機能するより良い方法を評価します。

4

5 に答える 5

2

これを行う最善/唯一の方法は、「UITableViewCell」サブクラスを使用することです。

また、「UIStoryboard」を使用している場合は、静的セルを使用できます。

次に、レイアウトしたいとおりにビューを正確にレイアウトできます。

スペースを使用することは絶対に答えではありません。特に iOS 7 では、ユーザーの好みによってフォント サイズが決定されます。フォント サイズを大きくすると、突然 4 つのスペースが大きくなりすぎて、正しく表示されなくなります。

于 2013-10-20T11:20:02.897 に答える
1

スペースを使用してラベル/テキストを整列させることは良い考えではないことに完全に同意しますが、しばらくの間はうまくいきました... :)レイアウトサブビューを使用するnomannasimのアイデアでラベルを適切に整列させることができました、私のために働くために彼のコードを少し修正しただけです。

- (void)layoutSubviews
{
[super layoutSubviews];
CGRect newFrame = self.detailTextLabel.frame;
newFrame.origin.x = newFrame.origin.x - 20;
self.detailTextLabel.frame = newFrame;
}
于 2013-10-22T04:38:14.507 に答える