Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Load lại ảnh và text trên UITableviewcontroller ???

    mình làm 1 nút setting cho phép load lại ảnh và text trên từng cell của UITableviewcontroller, nhưng không hiểu sao cứ phải kéo hết cái tableview đó xuống rồi kéo lên lại thì nó mới hiện ra đúng, còn nếu cứ để nguyên thì nó không hiện ra đúng, chắc do mình gọi thiếu 1 hàm refresh,ai giúp mình tìm hàm đó đc không?, thanks

    mình đã gọi hàm reloadData nhưng nó vẫn vô tác dụng

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Chưa hiểu ý bạn, nói lại xem rõ ràng được không bạn?

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi haian
    mình làm 1 nút setting cho phép load lại ảnh và text trên từng cell của UITableviewcontroller, nhưng không hiểu sao cứ phải kéo hết cái tableview đó xuống rồi kéo lên lại thì nó mới hiện ra đúng, còn nếu cứ để nguyên thì nó không hiện ra đúng, chắc do mình gọi thiếu 1 hàm refresh,ai giúp mình tìm hàm đó đc không?, thanks

    mình đã gọi hàm reloadData nhưng nó vẫn vô tác dụng
    Khi bạn khởi tạo 1 custom cell từ UITableViewCell giả sử mỗi 1 cell chứa 1 UIImageView và 1 UIlabel chẳng hạn ,vậy việc khởi tạo UIImage và UILabel và add vào cell phải được đặt trong

    Mã:
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{     //khởi tạo ở đây    [self addSubview:imgview];    [self addSubview:uilb];} // sau đó bạn mới được add image và text vào-(void)addText:(NSString *)str{   uilb.text=str;} -(void)addImage:(UIImage*)img{  imgview.image=image;}
    như vậy sẽ khắc phục được vấn đề của bạn... Nhưng chưa xong đâu, bạn sẽ để ý tiếp là khi kéo lên kéo xuống các cell có cảm giác như bị treo ....[IMG]images/smilies/daydreaming.gif[/IMG][IMG]images/smilies/daydreaming.gif[/IMG], bạn cần phải tham khảo tiếp đó

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi haian
    mình làm 1 nút setting cho phép load lại ảnh và text trên từng cell của UITableviewcontroller, nhưng không hiểu sao cứ phải kéo hết cái tableview đó xuống rồi kéo lên lại thì nó mới hiện ra đúng, còn nếu cứ để nguyên thì nó không hiện ra đúng, chắc do mình gọi thiếu 1 hàm refresh,ai giúp mình tìm hàm đó đc không?, thanks

    mình đã gọi hàm reloadData nhưng nó vẫn vô tác dụng
    Bạn post code đi mình review thử [IMG]images/smilies/smile.png[/IMG] chứ nói chung chung vậy sao mà giúp đc hihi

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn viết nó trong hàm cellForRowAtIndexPath thì mặc định thì UItableview sẽ không init lại những cell tiếp theo và bạn muốn chỉnh nó lúc run time thì bạn viết vào hàm willDisplayCell và gọi theo tag con của cell nha

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Theo mình, khi sử dụng UITableView bạn nên reuse cell, đây là một tính năng rất hay của UITableView, cho phép dùng lại các cell mà không cần phải khởi tạo lại mỗi lần nữa. Khi bạn scroll table mà thấy bị đè lên nhau hay text đậm dần lên thì đó là do quản lý cell chưa tốt. Đây là một ví dụ của mình với hàm cellForRowAtIndexPath:

    Mã:
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    	UILabel *textLabel;
        UIImageView* imgView;
    	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    	if (cell == nil) 
    	{
    		cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"] autorelease];
            cell.selected = UITableViewCellSelectionStyleNone;
            UIImageView *bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"shopping_cell_bg.png"]];
            UIImageView *selectView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"shopping_cell_select.png"]];
            cell.backgroundView = bgView;
            cell.selectedBackgroundView = selectView;
            
            textLabel = [[UILabel alloc] initWithFrame:CGRectMake(48, 7, 240, 30)];
            [textLabel setTag:7749];
    		[textLabel setBackgroundColor:[UIColor clearColor]];
    		[textLabel setFont:[UIFont boldSystemFontOfSize:17]];
    		[textLabel setTextColor:[UIColor blackColor]];
            [cell addSubview:textLabel];
            
            imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 7, 32, 32)];
            imgView.backgroundColor = [UIColor clearColor];
            [imgView setTag:8864];
            [cell addSubview:imgView];
            
            [textLabel release];
             [bgView release];
            [selectView release];
            [imgView release];
    	}
    	
        textLabel = (UILabel*)[cell viewWithTag:7749];
        imgView = (UIImageView*)[cell viewWithTag:8864];
        
        switch (indexPath.row) {
            case 0:
                textLabel.text = SetupLanguage(kStrShoppingFind);
                [imgView setImage:[UIImage imageNamed:@"ic_shopping_1.png"]];
                break;
            case 1:
                textLabel.text = SetupLanguage(kStrShoppingAboutMe);
                [imgView setImage:[UIImage imageNamed:@"ic_shopping_2.png"]];
                break;
            case 2:
                textLabel.text = SetupLanguage(kStrShoppingPurchase);
                [imgView setImage:[UIImage imageNamed:@"ic_shopping_3.png"]];
                break;
            case 3:
                textLabel.text = SetupLanguage(kStrShoppingCoupon);
                [imgView setImage:[UIImage imageNamed:@"ic_shopping_3.png"]];
                break;
            case 4:
                textLabel.text = SetupLanguage(kStrShoppingWork);
                [imgView setImage:[UIImage imageNamed:@"ic_shopping_5.png"]];
                break;
            default:
                break;
        }
    	
        return cell;
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •