我需要在视图中使用两个tableview。此外,我需要使用自定义单元格创建这些表。
我尝试了一些东西,但我在桌子的单元格中看不到简单的字符串。
这里有什么问题?
这是我更新的代码;
我还有问题,我正在使用无效参数异常[LastVisitOrder superview]:无法识别的选择器发送到实例。因为我已将uiview更改为uiview控制器。
- (id)initWithFrame:(CGRect)frame
{
self.view = [super initWithFrame:frame];
if (self) {
self.view.frame = CGRectMake(0, 0, 1024, 768);
[self.view setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.8]];
UIView *popup = [[UIView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-860)/2,(self.view.frame.size.height-570)/2, 860, 570)];
[popup setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"popup_bckgrnd"]]];
[self.view addSubview:popup];
UILabel *customerName = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, 300, 30)];
[customerName setBackgroundColor:[UIColor clearColor]];
[customerName setText:@"Beşiktaş Eczanesi"];
[customerName setFont:[UIFont fontWithName:@"Arial-BoldMT" size:18]];
[popup addSubview:customerName];
UILabel *customerDetail = [[UILabel alloc]initWithFrame:CGRectMake(50, 70, 300, 30)];
[customerDetail setBackgroundColor:[UIColor clearColor]];
[customerDetail setText:@"Tel: 231 213 23 23 Bla bla cad. Bla bla Sok. Bla bla Apt. No:Bla Blastan/Bistanbul"];
[customerDetail setFont:[UIFont fontWithName:@"Arial" size:14]];
[popup addSubview:customerDetail];
UIButton *close = [[UIButton alloc]initWithFrame:CGRectMake(780, 65, 19, 19)];
[close setBackgroundImage:[UIImage imageNamed:@"kapat"] forState:UIControlStateNormal];
[close addTarget:self action:@selector(closePopUp:) forControlEvents:UIControlEventTouchUpInside];
[popup addSubview:close];
UIView *titleLine = [[UIView alloc]initWithFrame:CGRectMake(35, 100, 790, 2)];
[titleLine setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"baslik_cizgi"]]];
[popup addSubview:titleLine];
dateTable = [[UITableView alloc]initWithFrame:CGRectMake(48.5, 165, 200, 345)];
dateTable.layer.cornerRadius = 10;
[dateTable setBackgroundColor:[UIColor clearColor]];
[popup addSubview:dateTable];
dateTable.delegate=self;
dateTable.dataSource=self;
UIImageView *visitDatesLabel = [[UIImageView alloc]initWithFrame:CGRectMake(70, 122, 148, 30)];
[visitDatesLabel setImage:[UIImage imageNamed:@"en_son_ziyaret"]];
[popup addSubview:visitDatesLabel];
UIImageView *line = [[UIImageView alloc]initWithFrame:CGRectMake(49.5, 160, 200, 2)];
[line setImage:[UIImage imageNamed:@"ust_cizgi"]];
[popup addSubview:line];
UIImageView *line2 = [[UIImageView alloc]initWithFrame:CGRectMake(270.5, 160, 540, 2)];
[line2 setImage:[UIImage imageNamed:@"ust_cizgi"]];
[popup addSubview:line2];
UIImageView *productsDatesLabel = [[UIImageView alloc]initWithFrame:CGRectMake(300, 122, 102, 29)];
[productsDatesLabel setImage:[UIImage imageNamed:@"urunler"]];
[popup addSubview:productsDatesLabel];
UIImageView *verticalLine = [[UIImageView alloc]initWithFrame:CGRectMake(430, 115, 2, 45)];
[verticalLine setImage:[UIImage imageNamed:@"dikey_cizgi"]];
[popup addSubview:verticalLine];
UILabel *firstMonth = [[UILabel alloc]initWithFrame:CGRectMake(455, 126, 148, 30)];
[firstMonth setBackgroundColor:[UIColor clearColor]];
[firstMonth setText:@"OCAK"];
[firstMonth setFont:[UIFont fontWithName:@"Arial-BoldMT" size:12]];
[firstMonth setTextColor:[UIColor grayColor]];
[popup addSubview:firstMonth];
UILabel *secondMonth = [[UILabel alloc]initWithFrame:CGRectMake(455+75, 126, 148, 30)];
[secondMonth setBackgroundColor:[UIColor clearColor]];
[secondMonth setText:@"ŞUBAT"];
[secondMonth setFont:[UIFont fontWithName:@"Arial-BoldMT" size:12]];
[secondMonth setTextColor:[UIColor grayColor]];
[popup addSubview:secondMonth];
UILabel *thirdMonth = [[UILabel alloc]initWithFrame:CGRectMake(455+75+75, 126, 148, 30)];
[thirdMonth setBackgroundColor:[UIColor clearColor]];
[thirdMonth setText:@"MART"];
[thirdMonth setFont:[UIFont fontWithName:@"Arial-BoldMT" size:12]];
[thirdMonth setTextColor:[UIColor grayColor]];
[popup addSubview:thirdMonth];
UILabel *rangeMonth = [[UILabel alloc]initWithFrame:CGRectMake(455+75+75+100, 126, 148, 30)];
[rangeMonth setBackgroundColor:[UIColor clearColor]];
[rangeMonth setText:@"OCAK-MART"];
[rangeMonth setFont:[UIFont fontWithName:@"Arial-BoldMT" size:12]];
[rangeMonth setTextColor:[UIColor grayColor]];
[popup addSubview:rangeMonth];
UIImageView *verticalLine2 = [[UIImageView alloc]initWithFrame:CGRectMake(510, 115, 2, 45)];
[verticalLine2 setImage:[UIImage imageNamed:@"dikey_cizgi"]];
[popup addSubview:verticalLine2];
UIImageView *verticalLine3 = [[UIImageView alloc]initWithFrame:CGRectMake(590, 115, 2, 45)];
[verticalLine3 setImage:[UIImage imageNamed:@"dikey_cizgi"]];
[popup addSubview:verticalLine3];
UIImageView *verticalLine4 = [[UIImageView alloc]initWithFrame:CGRectMake(670, 115, 2, 45)];
[verticalLine4 setImage:[UIImage imageNamed:@"dikey_cizgi"]];
[popup addSubview:verticalLine4];
medSalesTable = [[UITableView alloc]initWithFrame:CGRectMake(270.5, 165, 540, 345)];
medSalesTable.layer.cornerRadius = 10;
[medSalesTable setBackgroundColor:[UIColor clearColor]];
[popup addSubview:medSalesTable];
medSalesTable.delegate=self;
medSalesTable.dataSource=self;
}
return self;
}
-(void) closePopUp:(id)sender{
[self.view removeFromSuperview];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 50;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{ 的NSLog(@ “的cellForRowAtIndexPath”);
if (tableView == dateTable)
{
static NSString *CellIdentifier = @"VisitDateCell";
VisitDateCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[VisitDateCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.lastVisit setText:@"fucker"];
return cell;
}
else if(tableView == medSalesTable){
static NSString *CellIdentifier2 = @"OrdersCell";
OrdersCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil) {
cell = [[OrdersCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];
}
[cell.textLabel setText:@"fucker"];
return cell;
}
}
@end
答案 0 :(得分:1)
在datasource
方法中,您需要区分这两个表。
//cellForRowAtIndexPath
if (tableView == medSalesTable) {
// configure the first table
}
else {
// configure the second table
// use a different cell identifier
}
请确保您也在numberOfRowsInSection
和numberOfSectionsInTableView
中执行此操作。这假设您将两个表视图datasource
属性设置为控制器。
答案 1 :(得分:0)
使用cell = [[[NSBundle mainBundle] loadNibNamed:@"VisitDateCell" owner:self options:nil] objectAtIndex:0];
而不是cell = [[[VisitDateCell alloc] initWithFrame:CGRectZero] autorelease];
然后使用cell.textLabel.text = @"YOUR_TEXT";
<强>更新<!/强>
要访问您的变量日期,您需要在VisitDateCell.h
中创建全局变量。喜欢:
@property (nonatomic, strong) UILabel *date;
然后你的TableView实现访问使用:
(VisitDateCell*)cell.date = @"YOUR TEXT";
您的自定义方法setText不需要。只需在cellForRows
。
希望它会有所帮助!
答案 2 :(得分:0)
这是我一直使用的优雅方式.. 这里只处理创建多个自定义单元格,没有任何代码可用于计算单元格的高度。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
/*
Call a function to create all custom cells.
Send the tableview and the indexPath to this function.
So, your code will be clean and easy to read an maintenance =D
DON'T forget to change the height of each cell
*/
if (indexPath.row < 3)
return [self createACustomCell1:tableView indexPath:indexPath];
else
return [self createACustomCell2:tableView indexPath:indexPath];
}
//*************
// Create CUSTOM CELL 2
//*************
-(UITableViewCell *)createACustomCell1:(UITableView *)anTableView indexPath:(NSIndexPath *)indexPath{
static NSString *CUSTOMCELL_1 = @"CUSTOMCELL_1";
CustomCell_1 *cell = [anTableView dequeueReusableCellWithIdentifier:CUSTOMCELL_1];
if (!cell){
[anTableView registerNib:[UINib nibWithNibName:CUSTOMCELL_1
bundle:nil] forCellReuseIdentifier:CUSTOMCELL_1];
cell = [anTableView dequeueReusableCellWithIdentifier:CUSTOMCELL_1];
}
// Cell customization above
return cell;
}
//*************
// Create CUSTOM CELL 2
//*************
-(UITableViewCell *)createACustomCell2:(UITableView *)anTableView indexPath:(NSIndexPath *)indexPath{
static NSString *CUSTOMCELL_2 = @"CUSTOMCELL_2";
CustomCell_2 *cell = [anTableView dequeueReusableCellWithIdentifier:CUSTOMCELL_2];
if (!cell){
[anTableView registerNib:[UINib nibWithNibName:CUSTOMCELL_2
bundle:nil] forCellReuseIdentifier:CUSTOMCELL_2];
cell = [anTableView dequeueReusableCellWithIdentifier:CUSTOMCELL_2];
}
// Cell customization above
return cell;
}