2016-09-04 12 views
5

में किसी तत्व के कोने त्रिज्या को सेट करना मेरा कोड लगभग काम कर रहा है, लेकिन एक समस्या है।कस्टम UITableViewCell

जैसे ही तालिका भरी हुई है, छवियों दिखता है इस प्रकार हैं:

As soon as the table is loaded, images looks are as follows

लेकिन जब मैं स्क्रॉल तालिका सब कुछ अच्छा है:

But when i scroll the table everything is good

यहाँ क्या याद आ रही है ?

class ShopTableViewCell: UITableViewCell { 

let disposeBag = DisposeBag() 

@IBOutlet weak var shopImageView: UIImageView! 
@IBOutlet weak var imagesCollectionView: UICollectionView! 
@IBOutlet weak var nameLabel: UILabel! 
@IBOutlet weak var likeButton: UIButton! 
@IBOutlet weak var imageContainer: UIView! 

override func layoutSubviews() { 
    super.layoutSubviews() 
    imageContainer.clipsToBounds = true 
    imageContainer.layer.cornerRadius = imageContainer.frame.size.width/2 
    imageContainer.layer.borderWidth = 1 
    imageContainer.layer.borderColor = UIColor(hex: "#BDBDBD").CGColor 

उत्तर

5

ऐसा इसलिए है क्योंकि आपकी छविदृश्य की फ्रेम प्रॉपर्टी अभी तक अपडेट नहीं की गई है।

आप UIImageView का एक उपवर्ग बनाने के लिए और वहाँ है कि काम कर सकते हैं, की तरह:

स्विफ्ट

class CircleImageView: UIImageView { 

    override func layoutSubviews() { 
    super.layoutSubviews() 

    self.layer.borderWidth = 1/UIScreen.mainScreen().scale 
    self.layer.borderColor = UIColor(hex: "#BDBDBD").CGColor 
    self.layer.cornerRadius = self.bounds.size.width/2 
    self.layer.masksToBounds = true 
    } 
} 

ऑब्जेक्टिव-सी

@implementation CircleImageView 

- (void)layoutSubviews { 
    [super layoutSubviews]; 

    self.layer.borderWidth = 1/[UIScreen mainScreen].scale; 
    self.layer.borderColor = [UIColor whiteColor].CGColor; 
    self.layer.cornerRadius = self.bounds.size.width/2; 
    self.layer.masksToBounds = YES; 
} 

@end 
संबंधित मुद्दे