2009-05-18 19 views
6

UIImage, UITableView, UITableViewCell (?) Hücresine nasıl sığar? Görüntüyü UITableView hücresine sığdırmak için nasıl yeniden boyutlandırılır?

size addSubview cell için yapın veya cell.image atanmadan önce cell.image veya UIImage yeniden boyutlandırmak için bir yol var?

Hücre boyutunu varsayılan olarak tutmak istiyorum (sıfır dikdörtgen ile başladığınızda ne olursa olsun) ve her girişe resim gibi simge eklemek istiyorum. Görüntüler hücre boyutundan biraz daha büyüktür (tablo satırı boyutu).

Ben kodu (kafamın üstünden) şöyle düşünüyorum:

Hücre boyutuna sığacak şekilde görüntüyü yeniden boyutlandırmak için yapmanız gereken ne yapıyoruz
UIImage * image = [[UIImage alloc] imageWithName:@"bart.jpg"]; 
cell = ... dequeue cell in UITableView data source (UITableViewController ...) 
cell.text = @"bart"; 
cell.image = image; 

? Ben böyle bir şey gördüm:

UIImageView * iview = [[UIImageView alloc] initWithImage:image]; 
iview.frame = CGRectMake(...); // or something similar 
[cell.contentView addSubview:iview] 

yukarıda Hücre görüntü katacak ve Ben ancak, uygun boyut hesaplayabilirsiniz:

  1. emin değilim daha iyi olup olmadığını yolu, UIImageView için cell.image yeniden boyutlandırmak için fazla yük değil mi?

Örnek:

  • Şimdi benim etiket (cell.text) o görüntü tarafından gizlenmiş olarak, Ben sadece etiket olarak metin eklemek bir çözüm gördüm taşındı olması gerekir
    UILabel * text = [[UILable alloc] init]; 
    text.text = @"bart"; 
    [cell.contentView addSubview:iview]; 
    [cell.contentView addSubview:label]; 
    // not sure if this will position the text next to the label 
    // edited original example had [cell addSubview:label], maybe that's the problem 
    

    Birisi bana doğru yönde işaret edebilir mi?

    DÜZENLEME: Doh [cell.contentview addSubview:view] belki buna bakmak gerekiyor değil [cell addSubview:view]:

    - (UITableViewCell *)tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        UITableViewCell *cell = ...; 
        CGRect frame = cell.contentView.bounds; 
        UILabel *myLabel = [[UILabel alloc] initWithFrame:frame]; 
        myLabel.text = ...; 
        [cell.contentView addSubview:myLabel]; 
        [myLabel release]; 
    } 
    
  • +0

    Başka öneri yok mu? – stefanB

    cevap

    2

    This site posts code bir UIImage* rescaling üzerinde. Ölçeklendirmek için, kullanmak istediğiniz UIImage* modelini doğru ölçeklendirmek için kullanabilirsiniz.

    +0

    İlginç, Bakacağız, bağlantı için teşekkürler – stefanB

    1

    Elma dağıtıcı merkezine erişiminiz varsa, tablo görünümleri için görüntüleri ölçekleme hakkında bir video var. Performans konularına daha çok odaklanır ve iş parçacığı hakkında çok konuşur, ancak görüntüleri yeniden boyutlandırmak için kullanılan bazı örnek kodları gösterir.

    Video adı: "Etkili iPhone Uygulama Geliştirme - Bölüm 2" in yaklaşık 30 dakika içinde.

    +0

    Teşekkürler, kontrol edeceğim – stefanB

    İlgili konular