对不起,这是一个新问题,但我整日搜索仍无法找到答案。当我运行应用程序时,它会显示带有标签和计数的行,但图像未显示在表格视图单元格上。
#import "ViewController.h"
@interface ViewController () <UITableViewDataSource, UITableViewDelegate> {
NSMutableArray * imageNameArray;
//__weak IBOutlet UIImageView *cell;
__weak IBOutlet UITableView *Table;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self arraySetup];
}
-(void) arraySetup {
imageNameArray = [NSMutableArray arrayWithArray:@[@"2.jpg"]];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section {
return imageNameArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellId = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
//cell.imageView.image = [UIImage imageNamed:imageNameArray [indexPath.row]];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
}
cell.textLabel.text = imageNameArray [indexPath.row];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d", (int) indexPath.row + 1];
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(10,5, 50, 25)];
imv.image=[UIImage imageNamed:@"2.jpg"];
[cell.contentView addSubview:imv];
cell.imageView.image = imv.image;
return cell;
}
答案 0 :(得分:0)
默认情况下,UITableViewCell
包含UIImageView
。试试这个:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellId = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
}
cell.textLabel.text = imageNameArray [indexPath.row];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d", (int) indexPath.row + 1];
cell.imageView.image = [UIImage imageNamed:@"2.jpg"];
return cell;
}
另一种方法是使用您自己的Custom TableViewCell。
答案 1 :(得分:0)
在ViewDidLoad中添加数组:
arrayValue = [[ "userEmailType": "Home", "userImage": "image1.png"], [ "userEmailType": "Home", "userImage": "image2.png"], [ "userEmailType": "Work", "userImage": "image3.png"],]
自定义UITableViewCell代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CustomCell! = tableView.dequeueReusableCell(withIdentifier: "CustomCellIdentifier", for: indexPath) as! CustomCell
// Static image
cell.checkedImageObj!.image = UIImage.init(named: "resort_selected")
//Want round Image....
cell.contactImage.layer.cornerRadius = cell.contactImage.frame.size.width/2
cell.contactImage.layer.masksToBounds = true
// Set array of Image
cell.contactImage.image = (arrayValue[indexPath.row] as! NSDictionary).value(forKey: "userImage") as? UIImage
}
请试试....谢谢
答案 2 :(得分:0)
以下是一些非常基本的代码供您学习:
我正在使用基础课程UITableViewCell
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
cell.textLabel.text = @"Your table row text";
cell.imageView.image = [UIImage imageNamed:@"image.png"];// Here you specify your image
cell.detailTextLabel.text = @"Your descriptive text";
return cell;
}
答案 3 :(得分:0)
您必须在单元格的init方法中初始化imageView,如:
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(10,5, 50, 25)];
imv.tag = 10;
[cell.contentView addSubview:imv];
}
您可以按
设置图像 cell.textLabel.text = imageNameArray [indexPath.row];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d", (int) indexPath.row + 1];
UIImageView *imv = (UIImageView *)[cell.contentView viewWithTag:10];
imv.image=[UIImage imageNamed:@"2.jpg"];
return cell;
答案 4 :(得分:0)
我知道这是很晚的回复,这些天只有很少的人在使用ObjectiveC。下面为我工作。请注意,我正在重复使用同一tableView来填充地址簿,并且在单击每个加载其联系人的地址簿时单击。因此,只要条件允许,您就可以删除。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"cells";
UITableViewCell * cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (_isPhoneBooksLoaded){
cell.imageView.image =nil;
}
if (_isContactsLoaded){
cell.imageView.image = [UIImage imageNamed:@"contact_default.png"];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
重要:
不要忘记使用您设置的相同单元格标识符。
删除条件是否为PhoneBooksLoaded,isContactsLoaded并保持
cell.imageView.image = [UIImage imageNamed:@“ contact_default.png”];