0

ビューで2つのテーブルビューを使用する必要があります。また、これらのテーブルをカスタム セルで作成する必要があります。

何かを試しましたが、テーブルのセルに単純な文字列さえ表示されませんでした。

ここで何が問題なのですか?

これが私の更新されたコードです。

まだ問題があります。無効な引数例外 [LastVisitOrder スーパービュー]: 認識されないセレクターがインスタンスに送信されました。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
4

3 に答える 3

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;
}
于 2015-03-28T18:19:54.893 に答える
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変数の日付にアクセスするには、 .Like でグローバルに作成する必要があります。@property (nonatomic, strong) UILabel *date;

次に、TableView を使用してアクセスを実現します。 (VisitDateCell*)cell.date = @"YOUR TEXT";

カスタム メソッド setText では必要ありません。でこのコードを使用するだけcellForRowsです。

それが役立つことを願っています!

于 2013-08-02T06:36:20.637 に答える