UICollectionView'ın ek görünümünde (başlık) içinde, 3 satıra kırpmak istediğim çok satırlı bir etiketim var. UICollectionView'ın ek görünümünü (çok satırlı UILabel's içeren) dinamik olarak yeniden boyutlandırma
kullanıcı başlığı (tamamlayıcı) görünümünde herhangi bir yerinde musluklar
, ben 0 hatları nedenle tüm metin görüntüler için UILabel geçiş ve buna göre (tercihen animasyonlu) CollectionView'ın ek görünümün yüksekliğini büyümek istiyorum. Etiket kesik iken, değeri 149 olan benlayoutSubviews
sonunda
height
oturum açtığınızda
// MyHeaderReusableView.m
// my gesture recognizer's action
- (IBAction)onHeaderTap:(UITapGestureRecognizer *)sender
{
self.listIntro.numberOfLines = 0;
// force -layoutSubviews to run again
[self setNeedsLayout];
[self layoutIfNeeded];
}
- (void)layoutSubviews
{
[super layoutSubviews];
self.listTitle.preferredMaxLayoutWidth = self.listTitle.frame.size.width;
self.listIntro.preferredMaxLayoutWidth = self.listIntro.frame.size.width;
[self layoutIfNeeded];
CGFloat height = [self systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
self.frame = ({
CGRect headerFrame = self.frame;
headerFrame.size.height = height;
headerFrame;
});
NSLog(@"height: %@", @(height));
}
:
İşte şimdiye kadar benim kod: Burada başlığına hafifçe vurun sonra neler olur? ve numberOfLines
, 3 olarak ayarlanır. Üstbilgi'ye tıkladıktan sonra, numberOfLines
değerini 0'a getirdikten sonra bir düzen geçişini zorlayarak yüksekliği 163.5 olarak kaydedilir. Harika!
Tek sorun, tüm üstbilginin Büyütülmemesi ve hücrelerin aşağı itilmemesidir.
Koleksiyonumun ek görünümünün (tercihen animasyonlu) yüksekliğini dinamik olarak nasıl değiştirebilirim?
UICollectionViewFlowLayout ürününün headerReferenceSize
ve collectionView:layout:referenceSizeForHeaderInSection:
farkındayım, ancak bu durumda bunları nasıl kullandığımı tam olarak bilmiyorum.
sayesinde adamın peşinden ben heyet gerek kalmadan Çözümü uygulamak başardı 1 yıl sonra Swift 3'te zamanımı bu yaklaşımla kurtardın. Tamamen değil ama bu üste başka şeyler ekledim :) +1 – tobeiosdev