簡體   English   中英

自定義uitableviewcell重置子視圖框架不起作用

[英]custom uitableviewcell reset subview frame doesn't work as I wanted

我用筆尖自定義了一個uitableviewcell,並且想要自定義突出顯示的樣式。 當單元格突出顯示時,我想減小單元格子視圖的大小,並保持imageview在單元格中的位置不變。 因此,看起來圖像視圖的框架縮小了,但是圖像本身停留在該位置,不會改變其位置。

但是,此代碼段無法按我的意願工作,有人可以幫我弄清楚我哪里寫錯了。 任何幫助將不勝感激!

提示:imageview是self.frameView的子視圖,frameView是frameBgView的子視圖。

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    if (highlighted)
    {
        self.frameView.backgroundColor = UIColorFromRGBA(0, 0, 0, 0.1);
        CGRect rect = self.frameBgView.frame;
        rect.origin.x += 10;
        rect.size.width -= 20;
        self.frameBgView.frame = rect;

        rect = self.frameView.frame;
        rect.origin.x -= 10;
        self.frameView.frame = rect;

    }
    else
    {
        ....

    }
}

編輯:一些截圖來解釋這個問題: 單元格未突出顯示

單元格突出顯示

好的,我嘗試了您的解決方案,但是我像這樣,我正在發布代碼以及輸出的外觀,如果有任何問題,只是注釋,我就刪除了frameBgView這不是必需的

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
  {
    if (highlighted)
    {
      self.frameView.backgroundColor = [UIColor grayColor];
      CGRect rect = self.contentView.bounds;
      rect.origin.x += 15;
      rect.size.width -= 30;


    //rect = self.frameView.frame;
    // rect.origin.x -= 10;
      self.frameView.frame = rect;

   }
   else
  {
    self.frameView.backgroundColor = [UIColor whiteColor];
    CGRect rect = self.contentView.bounds;
    rect.origin.x += 10;
    rect.size.width -= 20;
    self.frameView.frame = rect;

  }

}

而且我沒有使用自動布局..我得到的結果是,之前

選擇之前

然后突出顯示,

在此處輸入圖片說明

編輯:

這是細胞結構

在此處輸入圖片說明

如u可以在圖片中看到,在content view我甲肝添加frameView其顏色為藍色,並在frameView我甲肝添加imageView ,也不要算了筆設置內容模式scale to fill ,並自動調整大小口罩都frameViewimageView為例

自動調整content view遮罩

在此處輸入圖片說明

自動調整frameView的蒙frameView

在此處輸入圖片說明

在自動口罩imageView

在此處輸入圖片說明

結束編輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM