MessageCell
adlı özel koleksiyonViewCell oluşturuyorum. Bu mesaj hücresinin üç bileşeni vardır: bir headerLabel
, messageContainerView
ve footerLabel
. sorun olduğunu ben en iyisi nedir vs. belirli eylemlerle görünümüFarklı Koleksiyonlarla Özel KoleksiyonViewCell?
belirli türde bir görüntülemek istediğiniz mesaj (video, işlem, teslimat teyidi, fotoğraf, metin, vb) türüne bağlı olarak Bunu başarmanın yolu? Benim cep alt sınıfta UIView
olarak benim konteyner görünümü kurma ve mesajın türüne bağlı olarak denedim, belirli bir subview değerine ayarlayın ama bu çalışmıyor:
- (void)setMessage:(EMKMessage *)message {
//Set Message
_message = message;
//Check Message Type
switch (message.type) {
case MessageTypeText:
default: {
//Create Message Content View
TextContentView *textContentView = [[TextContentView alloc] initForAutoLayout];
textContentView.frame = CGRectMake(0, 0, 300, 200);
[textContentView setText:message.text];
self.messageContainerView = textContentView;
break;
}
}
}
Herhangi bir yardım olurdu oldukça memnun olarak.
Teşekkürler Jelly. Sadece bir problem var. Bunu gerçekten söylemeliydim, ama şu anda MessageCell sınıfından gelen, gelen mesajları (IncomingMessageCell') ve giden mesajlardan sorumlu bir tane ('OutgoingMessageCell') ele alan iki hücreye sahibim. Bu ikisi arasındaki fark, kısıtlamalar ve konumlandırmadır. Önceden önerdiğiniz şeyi planladım, ancak bu hem IncomingMessageCell hem de OutgoingMessageCell için birçok kopya hücreye neden olacaktı. Bu gerçekten tek yol mu? – KingPolygon
Miras kullansanız bile aynı mantık uygulanabilir, gerçekten önemli değil. CellInheritedClass1' öğesine ihtiyacınız varsa, tanımlayıcıyı içeren bir hücreyi deşifre edin ve bunu kullanın, eğer CellInheritedClass2'ye ihtiyacınız varsa, bu tür bir hücreyi deşarj edin ve kullanın. Sadece onlar için farklı yeniden kullanım tanımlayıcılarınız olduğundan emin olun. – Jelly
Biraz kafamda Jelly. Bir alt sınıf oluşturmalıyım ("VideoMessageCell" iki kez, bir "IncomingMessageCell" ve bir "OutgoingMessageCell" için bir tane) veya bir şekilde bir kez yapmaktan bir şekilde kurtulabilir miyim? Bir örnek yararlı olurdu. – KingPolygon