One simplest solution is all a subview inside the tableviewcell so that in edit mode the alignment wont get change.
Follow this steps: 1. In your custom cell xib add a uiview(subView) and of course your tableviewcell(cell). 2. Add all uicontrols to uiview not in tableviewcell. 3. put in iboutlet of uiview in tableviewcell custom class.
This was for custom cell
now in cellForRowAtIndexPath: add this uiview as subview of cell
NSString *cellIdentifier=@"cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
// Load the top-level objects from the custom cell XIB.
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCellXIB" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
[cell addSubview:cell.subView];
}