ios - 使用自定义 UITableViewCell 时,imageview 框架为零
<p><p>我创建了一个自定义 UITableViewCell ,但想使用单元格中的标准 UIImageView。</p>
<p>我注意到帧总是归零,这给我带来了问题</p>
<pre><code>@implementation MyCustomCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
// the style is "default" style
self = ;
// I need to override the cells image
if (self) {
self.imageView.image = ; // The image view frame is {0,0,0,0}
}
return self;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不会在 <code>-initWithStyle:reuseIdentifier:</code> 中获得任何帧大小,因为尚未加载单元格,这意味着尚未创建 <code>subview</code>然而(<em>即是 <code>nil</code></em>),因此帧大小为 0。<br/>
<sub>即使对于 <code>viewController</code>,您也不会在 <code>-initWithNibName:</code> 方法中获得帧大小。</sub></p>
<p>你会更好:</p>
<ol>
<li><code>-layoutSubviews</code></li> 中的框架特定相关内容
<li>在 <code>-awakeFromNib</code> 中设置初始属性(<em>或直接通过 IB</em>)</li>
</ol>
<p>不管怎样,试试这个:</p>
<pre><code>//does this method even run? it shouldn't for a custom UITableViewCell
//unless you've mixed up things unnecessarily
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = ;
if (self) {
NSLog(@"initWithStyle -- %@",self.myImageView);
}
return self;
}
//do frame related stuff here
-(void)layoutSubviews
{
//fyi: this method is called anytime any frame changes
NSLog(@"layoutSubviews -- %@",self.myImageView);
}
- (void)awakeFromNib
{
//fyi: this method is called when the view is pulled from the IB
// Initialization code
NSLog(@"awakeFromNib -- %@",self.myImageView);
//do you thang here
];
}
</code></pre>
<hr/>
<ul>
<li> <a href="https://stackoverflow.com/q/728372/2857130" rel="noreferrer noopener nofollow"><code>-layoutSubviews</code> on SO</a> </li>
<li> <a href="https://stackoverflow.com/q/9122344/2857130" rel="noreferrer noopener nofollow"><code>-awakeFromNib</code> on SO</a> </li>
</ul></p>
<p style="font-size: 20px;">关于ios - 使用自定义 UITableViewCell 时,imageview 框架为零,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/24104200/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/24104200/
</a>
</p>
页:
[1]