gpt4 book ai didi

iphone - 变换表格 View

转载 作者:行者123 更新时间:2023-11-29 04:14:56 25 4
gpt4 key购买 nike

我想要为单元格显示图像。但是这段代码显示,只有白色的tableview。为什么?请告诉我。 (我不使用 Storyboard。)

TableCell.h

#import <UIKit/UIKit.h>

@interface TableCell : UITableViewCell <UITableViewDelegate,UITableViewDataSource>

@property (nonatomic,retain) UITableView *tableCellView;
@property (nonatomic,retain) NSArray *cellArray;

-(NSString *)reuseIdentifier;

@end

TableCell.m

    #import "TableCell.h"

@implementation TableCell

@synthesize tableCellView;
@synthesize cellArray;


-(NSString *)reuseIdentifier
{
return @"cell";
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [cellArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableCellView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
for (UIImageView *view in cell.subviews)
{
[view removeFromSuperview];
}

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
imageView.image = [UIImage imageNamed:[cellArray objectAtIndex:indexPath.row]];
imageView.contentMode = UIViewContentModeCenter; // 画像サイズを合わせて貼る

CGAffineTransform rotateImage = CGAffineTransformMakeRotation(M_PI_2);
imageView.transform = rotateImage;

[cell addSubview:imageView];
return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

return 220;
}

@end

TableViewController.h

    #import <UIKit/UIKit.h>

@class TableCell;

@interface TableViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>

@property (nonatomic, retain) UITableView *tableView;
@property (nonatomic, retain) TableCell *tableViewCell;
@property (nonatomic, retain) NSArray *titlesArray;
@property (nonatomic, retain) NSArray *peopleArray;
@property (nonatomic, retain) NSArray *thingsArray;
@property (nonatomic, retain) NSArray *fruitsArray;
@property (nonatomic, retain) NSArray *arrays;

@end

TableViewController.m

#import "TableViewController.h"
#import "TableCell.h"

@interface TableViewController ()

@end

@implementation TableViewController

@synthesize tableView;
@synthesize tableViewCell;
@synthesize titlesArray;
@synthesize peopleArray;
@synthesize thingsArray;
@synthesize fruitsArray;
@synthesize arrays;

- (void)viewDidLoad
{
[super viewDidLoad];

self.tableView.delegate = self;
self.tableView.dataSource = self;

tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStylePlain];
[self.view addSubview:tableView];

titlesArray = [[NSArray alloc] initWithObjects:@"People", @"Things", @"Fruits", nil];
peopleArray = [[NSArray alloc] initWithObjects:@"Gardener.png", @"Plumber.png", @"BusinessWoman.png", @"BusinessMan.png", @"Chef.png", @"Doctor.png", nil];
thingsArray = [[NSArray alloc] initWithObjects:@"StopWatch.png", @"TrashCan.png", @"Key.png", @"Telephone.png", @"ChalkBoard.png", @"Bucket.png", nil];
fruitsArray = [[NSArray alloc] initWithObjects:@"Pineapple.png", @"Orange.png", @"Apple.png", nil];

arrays = [[NSArray alloc] initWithObjects:peopleArray, thingsArray, fruitsArray, nil];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

return [arrays count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [titlesArray objectAtIndex:section];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 220;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
TableCell *cell = (TableCell *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil];

CGAffineTransform rotateTable = CGAffineTransformMakeRotation(-M_PI_2);
tableViewCell.tableCellView.transform = rotateTable;
tableViewCell.tableCellView.frame = CGRectMake(0, 0, tableViewCell.tableCellView.frame.size.width, tableViewCell.tableCellView.frame.size.height);

tableViewCell.cellArray = [arrays objectAtIndex:indexPath.section];

tableViewCell.tableCellView.allowsSelection = YES;
cell = tableViewCell;

}

return cell;
}

@end

AppDelegate.m

TableViewController *tvc = [[TableViewController alloc] init];
self.window.rootViewController = tvc;

最佳答案

UITableViewCell 默认情况下已经支持图像。您不需要需要添加新的 UIImageView 作为 subview ...

所以代替这个:

for (UIImageView *view in cell.subviews)
{
[view removeFromSuperview];
}

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
imageView.image = [UIImage imageNamed:[cellArray objectAtIndex:indexPath.row]];
imageView.contentMode = UIViewContentModeCenter; // 画像サイズを合わせて貼る

CGAffineTransform rotateImage = CGAffineTransformMakeRotation(M_PI_2);
imageView.transform = rotateImage;

[cell addSubview:imageView];

写下:

cell.imageView.image = [UIImage imageNamed:[cellArray objectAtIndex:indexPath.row]];

哦,我现在注意到您的代码还有很多其他问题!很抱歉这么说。您需要更改的其他内容:

  1. 将此方法从 TableCell 复制到 TableViewController:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 并删除现有的
  2. 删除 TableCell 类

我发现您也在进行轮换...但现在先不考虑它。首先尝试使其工作,然后担心图像的旋转。

我可以建议你读一本有关 iOS 开发的书吗?看起来你根本不知道自己在做什么:(

但我确实很乐意帮助你。您可以将所有代码放在 http://www.github.com 上吗?并邀请我作为合作者?我的用户名是 tomvanzummeren。我可以让这个应用程序为您服务。

关于iphone - 变换表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13856758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com