SORU
2 EKİM 2013, ÇARŞAMBA


Otomatik düzen kısıtlamaları UİTableViewCell içinde iOS7 sorunu

Otomatik düzen kısıtlamaları Program aracılığıyla özel UİTableView hücrelerim düzeni için kullanıyorum ve doğru tableView:heightForRowAtIndexPath: hücre boyutlarını tanımlama yapıyorum

İyi iOS6 üzerinde çalışıyor ve yapıyorbakiOS7 içinde de gayet güzel

AMA iOS7, burada uygulamayı çalıştırdığımda konsolda görüyorum mesaj türü:

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-10-02 09:56:44.847 Vente-Exclusive[76306:a0b] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
        "<NSLayoutConstraint:0xac4c5f0 V:|-(15)-[UIImageView:0xac47f50]   (Names: '|':UITableViewCellContentView:0xd93e850 )>",
        "<NSLayoutConstraint:0xac43620 V:[UIImageView:0xac47f50(62)]>",
        "<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>",
        "<NSLayoutConstraint:0xac43680 V:[UIView:0xac4d0f0(1)]>",
        "<NSLayoutConstraint:0xac436b0 V:[UIView:0xac4d0f0]-(0)-|   (Names: '|':UITableViewCellContentView:0xd93e850 )>",
        "<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>

Vegerçektenistemiyorum listesinde kısıtlama biri var :

"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"

ve ben = ^ HAYIR contentView translatesAutoresizingMaskIntoConstraints özelliğini ayarlayın . tüm cep bozmak istemiyorum.

44 varsayılan hücre yüksekliğini ama tabloda benim özel yükseklere tanımlanan görünüm temsilci neden hücre contentView bu kısıtlama var mı? Bunun sebebi ne olabilir?

İOS6 içinde olmuyor ve her şey gayet iyi görünüyor hem iOS6 ve iOS7 üzerinde.

Benim kod eğer ihtiyacınız varsa buraya gönderin ama bir pastebin için sormaya çekinmeyin istemiyorum bu yüzden oldukça büyük.

Nasıl yaptığımı belirtmek için, hücre başlatma:

  • Benim etiketler, düğmeler, vb oluşturmak
  • HAYIR translatesAutoresizingMaskIntoConstraints mülklerini kurdum
  • Hücre contentView subviews olarak ekliyorum
  • contentView kısıtlamalar ekliyorum

Ayrıca bu iOS7 sadece sebebini anlamak benim çok ilgimi çekiyor.

CEVAP
3 EKİM 2013, PERŞEMBE


Yaşadım bu sorunu.. görünen contentView çerçeve değil güncelleştirilmiş kadar layoutSubviews denir ancak çerçevenin hücre bulunmaktadır daha önce bırakmak contentView çerçeve ayarlamak için {0, 0, 320, 44} zaman zaman kısıtlamaları vardır değerlendirdi.

Daha ayrıntılı contentView baktıktan sonra, autoresizingMasks artık hazır gibi görünüyor.

Sizin görüşleriniz bu sorunu çözebilirsiniz sınırlamak önce autoresizingMask ayarı:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    if (self)
    {
        self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
        [self loadViews];
        [self constrainViews];
    }
    return self;
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • OVERWERK

    OVERWERK

    6 Temmuz 2010