我試圖改變UILabel在自定義UITableViewCell中的位置,但它不會移動。我已啓用自動佈局。UILabel在UITableviewcell中不改變的位置
- (void)updateLayout
{
NSArray* comp = [self.accessibilityHint componentsSeparatedByString:@"/"];
if (comp.count > 1)
{
CGRect rect = _imageViewT.frame;
rect.origin.x = 20 * comp.count;
rect.size.width = 44.0;
[_imageViewT setFrame:rect];
[_imageConstraint setConstant:_imageViewT.frame.origin.x-8];
rect = _lableT.frame;
rect.origin.x = _imageViewT.frame.size.width+_imageViewT.frame.origin.x+8;
rect.size.width = self.frame.size.width-rect.origin.x-40;
[_lableT setFrame:rect];
//[_imageConstraint setConstant:_imageViewT.frame.origin.x-8];
}
else
{
CGRect rect = _imageViewT.frame;
rect.origin.x = 10;
rect.size.width = 43.0;
[_imageViewT setFrame:rect];
[_imageConstraint setConstant:2];
rect = _lableT.frame;
rect.origin.x = 62;
rect.size.width = self.frame.size.width-rect.origin.x-40;
[_lableT setFrame:rect];
}
}
我打電話從的cellForRowAtIndexPath更新方法。 self.accessibilityHint包含字符串如AA/BB/CC,AA/CC
是的,我也這樣做過。它工作正常。但是現在當我選擇任何一行時,它會再次改變位置。 或者當我旋轉我的設備時,它再次改變位置。 – 2014-12-13 07:52:41
是,= layoutSubvies =將被調用幾次,如果單元格認爲它應該自行重新佈局,比如frame changed,setSelected :.所以如果你把你的佈局代碼放在layoutSubvies中,你必須確保它始終正常工作。也許你必須創建一些屬性來確定單元格的當前狀態,然後才能根據此屬性製作不同的佈局。 – MoLice 2014-12-13 07:59:24
你能告訴我如何才能得到細胞的當前狀態。 – 2014-12-13 08:17:39