Хорошо, поэтому я пытался исправить проблему, которую я получил уже пару дней без успеха. Сегодня я нашел решение, но не ПОЛНОЕ решение моей проблемы.Изменение позиции UILabel для пользовательского UITableVIewCell
Так что это проблема.
Он начинается, как это, пожалуйста, обратите внимание на выравнивание временных меток (те, слева)
Но после того, как таблицы перезагрузок во второй раз или при переключении вкладок назад и вперед он ТОГДА меняет то, что я хочу, чтобы оно выглядело с самого начала. Как это.
Это код, который делает это внутри cellForRowAtIndexPath:
if ([gameInfoObject.GameTime isEqual: @"FT"] || ([gameInfoObject.GameTime rangeOfString:@":"].location != NSNotFound)) { // CHeck to see if its FT or string contains ":" then hide liveB
cell.liveButton.hidden = YES;
CGRect frame = cell.gameTimeLabel.frame;
frame.origin.x= 27; // move the label 10pts to the left since no image will be present
cell.gameTimeLabel.frame= frame;
Я нашел решение с этого поста Changing the position of custom UIButton in custom UITableViewCell, но проблема в том, что она меняется для всех ячеек. Как вы можете видеть, мне нужно изменить только несколько ячеек. Пожалуйста, помогите мне, что я могу сделать им из идей ...
EDIT 1 весь кодcellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifier = @"Cell";
GamesInfoTableViewCell *cell = (GamesInfoTableViewCell *)[tableView dequeueReusableCellWithIdentifier:identifier];
// Configure the cell...
GameInfo *gameInfoObject;
gameInfoObject =[gamesInfoArray objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.backgroundColor = TABLECOLOR;
cell.homeTeamLabel.textColor = TEXT;
cell.awayTeamLabel.textColor = TEXT;
cell.gameTimeLabel.textColor = TEXT;
cell.homeTeamLabel.text = gameInfoObject.HomeTeam;
cell.awayTeamLabel.text = gameInfoObject.AwayTeam;
cell.homeTeamScoreLabel.text = gameInfoObject.HomeScore;
cell.awayTeamScoreLabel.text = gameInfoObject.AwayScore;
cell.liveButton.image = [UIImage imageNamed:@"1675447.png"]; //Load the green image
if ([gameInfoObject.GameTime isEqual: @"FT"] || ([gameInfoObject.GameTime rangeOfString:@":"].location != NSNotFound)) { // CHeck to see if its FT or string contains ":" then hide liveB
cell.liveButton.hidden = YES;
CGRect frame = cell.gameTimeLabel.frame;
frame.origin.x= 27; // move the label 10pts to the left since no image will be present
cell.gameTimeLabel.frame= frame;
}
else
cell.liveButton.hidden = NO;
if (([gameInfoObject.GameTime rangeOfString:@":"].location != NSNotFound)) {
cell.accessoryType = FALSE;
cell.userInteractionEnabled = NO;
cell.homeTeamScoreLabel.hidden = YES;
cell.awayTeamScoreLabel.hidden = YES;
}
cell.gameTimeLabel.text = gameInfoObject.GameTime;
return cell;
}
Попробуйте положить его в - (пустоте) Tableview: (UITableView *) Tableview willDisplayCell: (UITableViewCell *) клетка forRowAtIndexPath: (NSIndexPath *) indexPath { – soulshined
Я уже пробовал, Dst помощь @soulshined –
Вы используете автоматическая компоновка в банке или раскадровке, которая описывает расположение вашей ячейки? Если так настроить кадр gameTimeLabel, вероятно, ваша проблема - вам нужно будет отрегулировать ограничение (по сравнению с фреймом), которое контролирует его положение. Я также думаю, что вы должны сделать свой макет в самом GameInfoTableViewCell, в layoutSubviews (если не использовать автомасштабирование!) – TomSwift