是否有任何可能的方法将UIImageView
设置为分组UITableView
中的部分的背景(比方说第3节)? 我不是在问关于viewForHeaderInSection
'因为我尝试过但没有按预期工作。 非常感谢...将ImageView设置为分组的uitableview中的部分的背景
回答
如果您的表只有一个部分使用myTable.tableHeaderView = customHeaderView
。
viewForHeaderInSection
如果您没有返回类型为UIView
的对象或您的方法中的子类,则可能无法工作。将viewForHeaderInSection
方法中的一些代码添加到您的问题中,以获得更准确的答案。
编辑 -如果viewForHeaderInSection didn't work as expected
,你的意思是,头球攻门被剪辑,则这可能是因为你还没有已实现了以下方法:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
如果不执行,每个部分的高度设置到iOS
默认值。
viewForHeaderInSection没有按预期工作(我已经更新了上面的问题文本),它返回一个uiview,但它不会像预期的那样实现。 – JAHelia 2012-03-10 15:37:00
我的猜测是,如果你想得非常有创意,你可以想出一个方法来实质上交换UITableView的backgroundView属性,因为不同的部分是可见的。这不会让我觉得特别优雅,因为多个部分可能一次占据可见的屏幕,但也许我不明白这个问题。
简短的回答是,没有一个定义/简单的方法来实现这一点。一个部分的组合远离UITableView的背景,实质上该体系结构没有为你想要的设置。我不会假设知道你的实现的细节,但我也要警惕:UITableView的视觉和体系结构特征是相当考虑周全的。我个人的观点(再次,我没有看到你的工作),是在不同的部分背景可能压倒在许多情况下的用户体验。如果正确执行,我还可以看到它可能是很好的UI touch。
在这种情况下,如果你仍然想这样做,这里是我采取的方法:
基本上你要注意你的tableview的单元格的位置。你可以在scrollViewDidScroll或tableViewWillDisplay单元格或其他地方做到这一点,我敢肯定。但是你需要知道哪些单元格在屏幕上和屏幕上滚动,然后你需要能够询问最上面可见的单元格是什么。一旦你确定了你应该显示的部分,你可以使用它来滚动你自己的代表每个部分背景的视图。基本上,你要在代码中创建每个动态节背景视图,只需要将UIView的背景视图设置为重复模式(显然,高度将是动态的)。将所有的节背景子视图(或者最好是懒惰地)添加到你的UITableView的backgroundView中。
现在,随着滚动视图的滚动,您将观察哪些行和部分进出了表格视图。当部分中的行滚动时,计算部分背景的高度(将部分中的行数乘以其高度),并调整它的坐标轴,但由您的tableView的backgroundView截取。当部分滚动时,您将更新相关部分背景视图的Y偏移量。唷!
另一个想法可能是折腾你的所有部分背景视图,垂直布置在UIScrollView中,禁止用户交互。将滚动视图放置在您的表视图的backgroundView中,然后找出数学实质上是从tableview的滚动视图到背景滚动视图的“前进”滚动事件。
这可能需要一些工作来找到一个实现,以保持动画的顺畅和同步,但是,这是我认为可以实现的一种方法。
创建一个自定义headerView,看起来像这样。
.H
@interface CustomViewForHeader: UIView
@end
.M
#import "CustomViewForHeader.h"
@implementation CustomViewForHeader
-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self != nil) {
UIImageView *bgImage = [[UIImageView alloc]initWithFrame:self.frame];
bgImage.image = [UIImage imageNamed:@"bill_headerBg.png"];
[self addSubview:bgImage];
}
return self;
}
@end
这样使用它:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 50.0;
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section {
CustomViewForHeader *customView = [[CustomView alloc]initWithFrame:CGRectMake(0,0,320,50)]
return customView;
}
此视图将只覆盖标题区域,它不会覆盖整个区域,并根据单元格数量给出区段高度的动态... – JAHelia 2012-03-11 07:26:21
我记得一些事情的方法来找到每个部分的矩形。有了这些,你可以将适当大小的图像放在表格视图下面的滚动视图中。
除此之外,您可以将背景图像放入单元格本身的背景中。当tableview调用给定部分的单元格时,可以选择合适的图像或图像拼贴。
- 1. 分组UITableView的部分背景
- 2. 在分组的UITableView中为选定的UITableViewCell设置背景
- 3. 为分组的UITableView设置背景的问题
- 4. UITableView部分背景?
- 5. 背景为iphone sdk分组的uitableview
- 6. 如何在分组的UITableView上设置选定的背景色
- 7. UITableView分组背景图片
- 8. 为UICollectionView部分设置背景颜色?
- 9. 设置分组UITableView的背景细条纹
- 10. 具有clearColor背景的UITableView部分?
- 11. UITableView部分中的背景图像隐藏部分标题
- 12. 设置分组UITableViewCell的背景颜色
- 13. 如何为UITableView中的部分索引栏设置透明背景?
- 14. 分组的UITableView透明背景 - iPhone
- 15. iPhone - UITableView分组时清晰的背景?
- 16. 设置Imageview背景
- 17. 将背景图像设置为uitableview?
- 18. 如何为分组单元格的UITableView部分绘制渐变色背景
- 19. 设置背景图像到UITableView部分标题
- 20. 为UITableView的改变selectionColor设置分组
- 21. 将ImageView设置为ScrollView中屏幕高度的一部分
- 22. 如何使UIViewController背景看起来像分组UITableView的背景?
- 23. 当部分为空时,UITableView的背景颜色变为白色
- 24. 为页面的其余部分设置TCPDF背景颜色
- 25. 仅为TextView的一部分设置背景
- 26. 如何为背景的特定部分设置颜色?
- 27. 仅为标签的一部分设置背景颜色asp.net
- 28. 为标签的一部分设置背景颜色iOS
- 29. 设置一个分组的UITableView在给定部分开始?
- 30. 如何通过imageview将图像背景设置为imageView View?
当你说某个部分的“背景”时,这是否意味着你要在一个部分中设置单元格的背景,或者在部分后面设置tableview的背景? – isaac 2012-03-10 14:47:45
第二个.. – JAHelia 2012-03-10 14:52:27