給UITableView設置了一個button。
在viewDidLoad執行完,button就在右邊,但是如果進行滾動。button就開始亂跑。
代碼如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
if (indexPath.section == 0 && indexPath.row == 0 && _isAddImageViewLoad == NO) {
// Add Image Button
UIButton *addImage = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage* image = [UIImage imageNamed:@"AddImage@2x"];
addImage.frame = CGRectMake(110.0f, 10.0f, 110.0f, 110.0f);
[addImage setImage:image forState:UIControlStateNormal];
[cell.contentView addSubview:addImage];
_isAddImageViewLoad = YES;
} else {
NSDictionary *dictionary = [_items objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"data"];
NSString *cellValue = [array objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
}
return cell;
}
應該是這樣,如果你用addImage的話,在retina顯示下它會自動使用e"AddImage@2x"。可能是這樣引起的問題。
tableview滾動的話相當於‘再開始’。好像你用了一個布爾型將加載button的初始cell刷新掉了。可以使用一個標題將button一直保持在頂端部分。你可以驗證一下cell被重用的時候button是不是會移動。
另外,在tableview cell中button不太好用,因為他們控制觸摸的方法大相庭徑。這樣搭配使用需要進行許多修改才能實現說得過去的效果。以後你用著用著就會遇到了。