Star
Star

Reputation: 84

UIScrollView in a tableView cell

I want to use the scroll view inside the tableviewcell. I have written the following code. But the scrollview is invisible. can any one help me regarding this please.

- (UITableViewCell *)tableViewCellWithReuseIdentifier:(NSString *)identifier indexPath:(NSIndexPath*)indexPath {  

CustomCell *cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CELL"] autorelease];  
    UIScrollView *m_scrolLView = [[UIScrollView alloc] initWithFrame:cell.contentView.frame];  
    m_scrolLView.contentSize = CGSizeMake((100 * [itemsArray count]), cell.contentView.frame.size.height);  

    // CGRect scrollFrame = cell.cellScrollView.frame;  

    for (int i = 0 ; i < [itemsArray count]; i++) {  
        UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[itemsArray objectAtIndex:i]];  

    CGRect m_frame;// = cell.cellScrollView.frame;  

    m_frame.origin.x = ((100 * i) + 3);
    m_frame.origin.y = 0;//frame.origin.y;
    m_frame.size.width = 100;
    // m_frame.size.height = scrollFrame.size.height;
    tempImageView.frame = m_frame;

    [m_scrolLView addSubview:tempImageView];
    tempImageView = nil;
}

cell.cellScrollView = m_scrolLView;

//cell.cellScrollView = m_scrolLView;
[m_scrolLView release];  
   // [cell.contentView addSubview:m_scrolLView];  
    return cell;  

}  

Here, the cellScrollView is created in XIB.

Thanks in advance,


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
UIScrollView *m_scrolLView = [[UIScrollView alloc] initWithFrame:cell.contentView.frame];
m_scrolLView.contentSize = CGSizeMake((100 * [itemsArray count]), cell.contentView.frame.size.height);

// CGRect scrollFrame = cell.cellScrollView.frame;

for (int i = 0 ; i < [itemsArray count]; i++) {
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[itemsArray objectAtIndex:i]];

    CGRect m_frame;// = cell.cellScrollView.frame;
    m_frame.origin.x = ((100 * i) + 3);
    m_frame.origin.y = 0;//frame.origin.y;
    m_frame.size.width = 100;
    // m_frame.size.height = scrollFrame.size.height;
    tempImageView.frame = m_frame;

    [m_scrolLView addSubview:tempImageView];
    tempImageView = nil;

}

[cell.contentView addSubview:m_scrolLView];
// Configure the cell.
return cell;

I did like this .. But no use.. scroll view is not visible in cell. Priya can u help me on this.

Upvotes: 1

Views: 1780

Answers (2)

Priyanka
Priyanka

Reputation: 152

Add Your part of code in this method

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

and add [cell.contentView addSubview:m_scrolLView];

Upvotes: 0

Star
Star

Reputation: 84

HI,

I got answer, the problem was the scrollview height was not set. Now its working completely fine. Thanks for everyone who tried to answer this question.

    UIScrollView *m_scrolLView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.frame.size.width, 150)];
    m_scrolLView.contentSize = CGSizeMake((100 * [itemsArray count] + 5), cell.contentView.frame.size.height);
    for (int i = 0 ; i < [itemsArray count]; i++) {
        UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[itemsArray objectAtIndex:i]];
        CGRect m_frame = m_scrolLView.frame;
        m_frame.origin.x = ((100 * i) + 5);
        m_frame.origin.y = 0;
        m_frame.size.width = 90;
        m_frame.size.height =150;
        m_scrolLView.backgroundColor = [UIColor lightGrayColor];
        m_scrolLView.pagingEnabled = YES;
        [m_scrolLView addSubview:tempBTN];
        tempImageView = nil;
        //cell.cellScrollView = m_scrolLView;
    }

[cell.contentView addSubview:m_scrolLView]; 
    m_scrolLView = nil;
// Configure the cell.
return cell;

}

Upvotes: 2

Related Questions