SORU
5 AĞUSTOS 2013, PAZARTESİ


Nasıl otomatik düzen, görünüm gizli ve diğer görünümler arasında taşımak için kullanılır?

İB özel Cep telefonumu tasarladım, alt ve özel dersime benim çıkışları bağlı. Hücre içeriğini üç subviews var: UİView (cdView) ve iki etiketi (titleLabel ve emailLabel). Veri her satır için kullanılabilir bağlı olarak, bazen UİView ve iki etiket hücremde görüntülenen ve sadece iki etiket bazen olsun istiyorum. Yapmaya çalıştığım şey gizli UİView özelliği ayarlamak veya iki etiketleri sola hareket edecek superview çıkarmak ederim kısıtlamaları bu şekilde ayarlamaktır. 10px için Superview (Hücre içeriğini) UİView önde gelen kısıtlama koymaya çalıştım ve 10 px sonraki görünümü (UİView) için önde gelen Kısıtlamaları UİLabels. Daha sonra benim kod

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(IndexPath *)indexPath {
...
Record *record = [self.records objectAtIndex:indexPath.row];

if ([record.imageURL is equalToString:@""]) {
     cell.cdView.hidden = YES;
}

Benim cep saklanıyorum.ve etiketler Hücrede aynı pozisyonda kalmak onlar ancak sola hareket etmek istiyorum cdView. Hücre kaldırmak için çalıştım.ama o da işe yaramadı superview gelen cdView. Görüntü hakkında ne olduğumu açıklamak için ekledim.

cell

Bu programlama yoluyla nasıl yapıldığını biliyorum ve bunun için bir çözüm arıyorum. İstediğim kısıtlamaları ayarlamak için İB ve benim subviews diğer görünümleri kaldırıldı veya gizli dinamik olarak hareket edeceğini umuyorum. Otomatik düzeni ile İB bunu yapmak mümkün mü?

.....

CEVAP
5 AĞUSTOS 2013, PAZARTESİ


Mümkündür, ama küçük bir ekstra iş yapmak zorunda kalacaksın. Yoldan önce birkaç kavramsal bir şey var:

  • Beraberlik yok olsa bile gizli manzaralı,,hala katılmakOtomatik Düzen ve genellikleonların çerçeveleri koruronların yerlerde diğer ilgili görüşlerini bırakarak.
  • Onun superview bir görünüm çıkartırkentüm ilgili kısıtlamalarayrıca bu görüşü hiyerarşi kaldırıldı.

Senin durumunda, bu büyük olasılıkla anlamına gelir:

  • Eğer gizli olması için sol görünüm ayarlarsanız, etiket sol görünüm hala boşluk görünür olmasa da () alarak olduğu yerde kal.
  • Sen sol görünüm kaldırırsanız, etiketlerinizi muhtemelen artık etiketleriniz için kısıtlamalar' kenarları bıraktı. beri belirsizce kısıtlı kalacak

Yapman gereken şey mantıklıüzerinden sınırlıyoretiketler. Bırakın mevcut kısıtlamaları (10pts alan diğer görüş) yalnız, ama başka bir kısıtlama Ekle: etiket' sol kenarları 10pts uzak kendi superview sol kenarı ile bir non-gerekli önceliği (varsayılan yüksek öncelikli olacak muhtemelen iyi çalışır).

Onları sola taşımak istediğiniz zaman, sol görünüm tamamen kaldırmak. Sol görünüm için zorunlu 10 puntoluk kısıtlaması ile ilgilidir görünümü ile birlikte yok olacak, ve etiketleri 10pts onların superview uzak olması yüksek öncelikli bir kısıtlama kalmaz. Düzen pas yanında, bu onları superview genişliği dolduruyorlar ama mesafeni için kenarlarda kadar sol genişletmek için neden.

Eğer sol görünüm resim geri istiyorsanız, sadece geri görünüm hiyerarşisi içinde eklemek zorunda, ama aynı zamanda . bir önemli uyarı: ^strong>tüm kısıtlamaları yeniden kurmakaynı zamanda. Bu görünüm yeniden gösterildiğinde görünüm ve etiketler arasında 10 puntoluk boşluk senin kısıtlaması geri koymak için bir yol gerekir anlamına gelir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • placeboing

    placeboing

    7 Mart 2006
  • ThePointblank

    ThePointblan

    18 Aralık 2006
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011