2011-08-24 38 views
19

Tôi có một số UITableView nhận thông tin từ máy chủ và xuất bản dữ liệu vào chế độ xem bảng. Bên trong mỗi ô là thông tin từ máy chủ.Lập trình Thêm hình ảnh vào ô xem bảng

Đối với mục đích của ví dụ này, chúng ta hãy nói thông tin chúng tôi nhận được từ các máy chủ là những con số: 1, 2, 3, 4.

Những gì tôi muốn làm là thêm một hình ảnh (theo chương trình vì có nếu các câu lệnh liên quan, vv) ở bên trái của ô, và văn bản (1, 2, vv) ngay bên cạnh nó.

Về cơ bản, tôi muốn mỗi tế bào trông như thế này:

_____________________________________ 
| (IMAGE) (TEXT)      | --CELL 0 
-------------------------------------- 
_____________________________________ 
| (IMAGE) 2       | --CELL 1 
-------------------------------------- 

Xin tha minh họa thô của tôi. :)

Trả lời

19

đây bạn đi:

cell.imageView.image = [UIImage imageNamed:@"image.png"]; 

Swift:

cell.imageView?.image = UIImage(named: "image.png") 
+0

Đó là vấn đề cần được cố định trong tôi chỉnh sửa câu trả lời vào ngày 24 tháng 9 năm 2015. –

3

Đối tượng UITableViewCell có thuộc tính imageView; bạn chỉ có thể đặt hình ảnh của chế độ xem hình ảnh này và nó sẽ tự động hiển thị hình ảnh ở đúng vị trí với tiêu đề bên cạnh nó.

8

Bạn có thể thêm cả hình ảnh và văn bản vào UITableViewCell trong lớp con UITableViewController bạn như vậy:

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

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

    [[cell imageView] setImage:anImage]; 
    [[cell textLabel] setText:[NSString stringWithFormat:@"%d",[indexPath row]]; 

    return cell; 
} 

Có một vài thuộc tính "built-in" để UITableViewCell mà bạn có thể tận dụng, chẳng hạn như imageView, textLabel và detailTextLabel. Để biết thêm thông tin, hãy xem Table View Programming Guide.

0
// create a rectangle box for image view 

UIImageView *iconImage = [[UIImageView alloc] init]; 
iconImage.frame = CGRectMake(12,4,53.5,53.5); 

// Create a label for cells 
UILabel *cellName = [[UILabel alloc] initWithFrame:CGRectMake(75,18,200,20)]; 
cellName.font = [self fontForBodyTextStyle]; 

NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]]; 

// Select path row tab actions 
switch (indexPath.row) { 
    case 0: 

     cellName.text = cellNameStr; 
     iconImage.image = [UIImage imageNamed:@"condition.png"]; 
     [cell.contentView addSubview:iconImage]; 
     [cell.contentView addSubview:cellName]; 

     break; 

    case 1: 
     cellName.text = cellNameStr; 
     iconImage.image = [UIImage imageNamed:@"videos.png"]; 
     [cell.contentView addSubview:iconImage]; 
     [cell.contentView addSubview:cellName]; 
     break; 

    case 2: 
     cellName.text = cellNameStr; 
     iconImage.image = [UIImage imageNamed:@"provider.png"]; 
     [cell.contentView addSubview:iconImage]; 
     [cell.contentView addSubview:cellName]; 
     break; 

    case 3: 
     cellName.text = cellNameStr; 
     iconImage.image = [UIImage imageNamed:@"info.png"]; 
     [cell.contentView addSubview:iconImage]; 
     [cell.contentView addSubview:cellName]; 
     break; 

    default: 
     NSAssert(NO, @"Unhandled value in cellForRowAtIndexPath"); 
     break; 
} 
5

Phiên bản Swift 2.0 của câu trả lời đầu tiên là:

cell.imageView?.image = UIImage(named: "image.png") 
Các vấn đề liên quan