Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

changing the position of the detailtextlabel in the cell?

Tags:

ios

iphone

ipad

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?

like image 657
hacker Avatar asked Jul 10 '12 05:07

hacker


1 Answers

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).

like image 174
Alan Zeino Avatar answered Oct 11 '22 23:10

Alan Zeino