2012-08-31 3 views
1

Im пытается установить смещение содержимогоView моего UITableViewCell. Но не удалось. Как вы можете найти на картинке, смещения нет.Невозможно установить кадр содержимого UITableViewCell

enter image description here

Соответствующий код выглядит следующим образом.

MyCell.m

#import "MyCell.h" 

@implementation MyCell 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code 
    UIView *backGroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; 
    [backGroundView setBackgroundColor:[UIColor grayColor]]; 
    [self addSubview:backGroundView]; 

    UIView *frontView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; 
    [frontView setBackgroundColor:[UIColor greenColor]]; 

    UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; 
    myLabel.text = @"My Cell"; 
    myLabel.backgroundColor = [UIColor clearColor]; 
    [myLabel setTextAlignment:UITextAlignmentCenter]; 
    [frontView addSubview:myLabel]; 

    [self.contentView addSubview:frontView]; 


    [self bringSubviewToFront:self.contentView]; 

} 
return self; 
} 

MyTableViewController.m

#import "MyTableViewController.h" 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 1; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"MyCell"; 

MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

CGPoint center = cell.center; 
center.x = cell.contentView.bounds.size.width/2 - 20; 
[cell.contentView setCenter:center]; 

NSLog(@"origin.x :%f ,y :%f, width :%f, height :%f",cell.contentView.frame.origin.x, cell.contentView.frame.origin.y, cell.contentView.frame.size.width,cell.contentView.frame.size.height); 

return cell; 
} 

журнал

2012-08-31 18:29:34.075 TableViewCellOffsetTest[16169:207] origin.x :-20.000000 ,y :0.000000, width :320.000000, height :44.000000 
+0

Я не понимаю, что вы имеете в виду под «попыткой установить смещение contentView» - в вашем коде нет ничего чего-нибудь из смещения ... – user387184

+0

Покажите нам свой код, относящийся к [cell.contentView setCenter: center] ; – AppHandwerker

+0

@ user387184 На самом деле я хотел бы перетащить cell.contentView горизонтально –

ответ

1

Покажите нам ваши код отн ating [cell.contentView setCenter: center]; Я подозреваю, что вы пытаетесь переместить основной вид ячейки. Я бы не сделал этого, я бы добавил subview и смещение, и добавил ваши представления контента к нему. Поскольку вы уже используете настраиваемый метод, все ваши изменения должны быть сделаны там. Кроме того, стоит отметить, что вы также захотите сбросить ячейки смещения каждый раз, когда они будут повторно использованы, поскольку вы в конечном итоге перемещаете контент дальше и дальше.

+0

center - свойство cell.contentView. –

Смежные вопросы