установить позицию uitableviewcellaccessory - PullRequest
3 голосов
/ 29 марта 2011

По умолчанию позиция UITalbeViewCellAccessory находится в середине ячейки справа. Я хочу сместить его на 29 пикселей по оси Y (переместить на 29 пикселей вниз). Как я могу это сделать? Я попытался установить фрейм accessoryView, но это не сработало.

Спасибо

Ответы [ 5 ]

1 голос
/ 16 марта 2017

Установка начального кадра accessoryView не влияет, он изменяется каждый раз, когда ячейка выполняет компоновку, вам необходимо:

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.accessoryView.center = CGPointMake($yourX, $yourY);
}

Это простой способ установить пользовательскую позицию для accessoryView , который сохраняется в любом состоянии ячейки

1 голос
/ 30 января 2014

Трюк для UIImageView как accessoryView (слегка измененный, может содержать опечатки):

cell.accessoryView = ({UIImageView * imgV = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];
                    CGRect frame = imgV.frame;
                    frame.size.width = frame.size.width + 10; //Push left by 10
                    imgV.frame = frame;
                    [imgV setContentMode:UIViewContentModeLeft];
                    imgV; });
0 голосов
/ 01 апреля 2014

Свойство по умолчанию UITableViewCell accessoryView жестко запрограммировано пропорционально, используя значения из свойства кадра UITableViewCell и UITableView

(что-то вроде UITableViewCell.accessoryView.frame.x = UITableView.frame.width - *30, and UITableViewCell.accessoryView.frame.y = UITableViewCell.frame.height / 2 - *10) (* приблизительные оценочные значения мной)

Например, если вы понизите значение UITableView.frame.width, «абсолютная» x-позиция accessoryView переместится влево, и, аналогично, вы можете отрегулировать «абсолютную» y-позицию, манипулируя UITableViewCell значение высоты, и, возможно, вы могли бы каскадировать 2 UITableViewCell и установить внутреннюю высоту на один кадр больше, чем у его родителя, чтобы положение вспомогательного вида (которое расположено примерно на половине высоты внутреннего * 1014) *) получает более низкое «абсолютное» значение y-позиции.

Не очень хорошее решение, но это один из способов без пользовательских дополнительных видов.

0 голосов
/ 27 мая 2013

Вы не можете переместить значение по умолчанию UITableViewCellAccessoryType. Вам нужно просто добавить пользовательский вид в ячейку:

[cell.contentView addSubview:aView];
0 голосов
/ 29 марта 2011

Для этого вы должны пойти на custom accessory view ... потому что его более простой способ изменить местоположение UITableViewCellAccessory и для пользовательского представления аксессуаров взгляните на Пользовательский просмотр аксессуаров для UITableView в iPhone

Теперь установите аксессуары там, где вы хотите.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...