![](/img/trans.png)
[英]UITableViewCell and setting subview frames in layoutSubviews doesn't work first time
[英]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
,並自動調整大小口罩都frameView
和imageView
為例
自動調整content view
遮罩
自動調整frameView的蒙frameView
在自動口罩imageView
結束編輯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.