hacker
hacker

Reputation: 8947

changing the position of the detailtextlabel in the cell?

I have an Iphone application in which i am combining two arrays and displaying in the same table.the problem here is i was not able to change the position of the detailed textlabel in the cell.here is my code snippet `

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cell_with_arrow.png"]];
        [cell setBackgroundView:img];
        [img release];        
    }
    if(newssarray==nil||[newssarray count]==0)
    {            
    }
    else
    {
        NSDictionary *dicttable=[newssarray objectAtIndex:indexPath.row];
        head=[dicttable objectForKey:@"news"];
        head1=[dicttable objectForKey:@"name"];
        NSString *sub=[dicttable objectForKey:@"created"];

        NSLog (@"%@",head);

        [[cell viewWithTag:12] removeFromSuperview];
        [[cell viewWithTag:13] removeFromSuperview];
         [[cell viewWithTag:14] removeFromSuperview];

        UIButton *shopLabel=[self buttonWithText:head andFrame:CGRectMake(49, 12, 250,5)] ;
        shopLabel.tag=12;
        //shopLabel.autoresizingMask=UIViewAutoresizingFlexibleRightMargin;
        [shopLabel addTarget:self action:@selector(openRestaurantsList) forControlEvents:UIControlEventTouchUpInside];

        UIButton *shopLabel1=[self buttonWithText:head1 andFrame:CGRectMake(49, 12, 250,5)] ;
        shopLabel1.tag=14;
        //shopLabel.autoresizingMask=UIViewAutoresizingFlexibleRightMargin;
        [shopLabel1 addTarget:self action:@selector(openRestaurantsList) forControlEvents:UIControlEventTouchUpInside];
        cell.detailTextLabel.frame = CGRectMake(49, 30, 150,5);
        if(indexPath.row < [newsseperatearray count])
        {
            UIImage *cellImage = [UIImage imageNamed:@"news.png"];
            cell.imageView.image = cellImage;
            //NSStringEncoding encoding=NSASCIIStringEncoding;
            cell.imageView.frame=CGRectMake(0,0,48,48);
            cell.imageView.bounds=CGRectMake(0,0,48,48);
            [cell.imageView setClipsToBounds:NO];
            NSLog(@"%@",sub);                     
            cell.detailTextLabel.text = sub;
            cell.detailTextLabel.backgroundColor = [UIColor clearColor];
        }
        else
        {
            UIImage *cellImage = [UIImage imageNamed:@"menu_icon.png"];
            cell.imageView.image = cellImage;
            //NSStringEncoding encoding=NSASCIIStringEncoding;
            cell.imageView.frame=CGRectMake(0,0,48,48);
            cell.imageView.bounds=CGRectMake(0,0,48,48);
            [cell.imageView setClipsToBounds:NO];
        }
        [cell addSubview:shopLabel];
        [cell addSubview:shopLabel1];
        // [cell addSubview:shopLabel2];
    }
    return cell;
}

`can anybody help me to achieve this?

Upvotes: 6

Views: 1908

Answers (1)

Alan Zeino
Alan Zeino

Reputation: 4396

Make a UITableViewCell subclass, keep that cell style as UITableViewCellStyleSubtitle, and override layoutSubviews in that subclass. You can then change the frame of detailTextLabel (just make sure to call the super implementation of layoutSubviews in your method).

Upvotes: 7

Related Questions