set position of uitableviewcellaccessory

By default the UITalbeViewCellAccessory's position is in the middle of the cell off to the right. I want to shift it 29 pixels on the Y axis (move it down 29 pixels). How can i do this? I tried setting the accessoryView's frame but that didn't work.

Thanks,

Answers


Set the accessoryView initial frame is affectless, it is changed any time that the cell does a layout, you need to:

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

This is a simple way to set a custom position for the accessoryView that is persisted in any cell status


A trick for UIImageView's as accessoryView (slightly modified, may contain typos):

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; });

You cannot move the default UITableViewCellAccessoryType. You need to just add a custom view to the cell:

[cell.contentView addSubview:aView];

The default UITableViewCell accessoryView property is hard-coded proportional using values from the UITableViewCell and UITableView frame property

(something like UITableViewCell.accessoryView.frame.x = UITableView.frame.width - *30, and UITableViewCell.accessoryView.frame.y = UITableViewCell.frame.height / 2 - *10) (*rough estimate values by me)

For example, if you would lower the UITableView.frame.width value, the accessoryView "absolute" x-position moves to the left, and, similarly, you can adjust the "absolute" y-position by manipulating the UITableViewCell height value, and, possibly, you could cascade 2 UITableViewCell's and set the inner one frame height larger than its parent's so that the position of the accessory view (which is positioned to about half the height of the inner UITableViewCell) gets a lower "absolute" y-position value.

Not a pretty solution, but that's the one way without custom accessory views.


For that you have to go for custom accessory view...because its easier way to change the location of UITableViewCellAccessory and for custom accessory view have a look at Custom Accessory View For UITableView in iPhone

Now set the accessories wherever you want.

Good Luck!


Need Your Help

Bind input value to ng-click button (send value as parameter)

javascript html angularjs angularjs-ng-click angularjs-ng-model

I'm trying to bind the value from an input field to the parameter of my method on ng-click. Here's what I got, but it doesn't work, and I am not too sure if it's possible to do it this way?:

Spring Batch partitioning -Queue configuration

spring-batch spring-integration spring-jms jbossmq

We are trying to implement spring batch partitioning.I did an initial study and end up with following questions.