iphone - 将 ImageView 设置为分组 uitableview 中部分的背景

标签 iphone objective-c ios cocoa-touch uitableview

是否有任何可能的方法将 UIImageView 设置为分组 UITableView 中某个部分(假设第 3 部分)的背景? 我不是在问 viewForHeaderInSection,因为我试过了,但没有按预期工作。 非常感谢...

最佳答案

我的猜测是,如果您非常有创意地思考,您可以想出一种方法来在不同部分可见时实质上交换 UITableView 的 backgroundView 属性。考虑到多个部分可能同时占据可见屏幕,这并没有让我觉得特别优雅,但也许我没有清楚地理解这个问题。

简短的回答是没有定义/简单的方法来实现这一点。一个部分的组成与 UITableView 的背景相去甚远,并且本质上该体系结构并未根据您的需要进行设置。我不会假设知道您的实现细节,但我也想提醒您注意:UITableView 的视觉和体系结构特征经过深思熟虑。我个人的意见(同样,我还没有看到你在做什么)是,在许多情况下,不同的部分背景可能会压倒用户体验。我还可以看到一些情况,如果执行得当,它可能是一个不错的 UI 触摸。

在这种情况下,如果您仍想这样做,我会采用以下方法:

从本质上讲,您将要观察 tableview 单元格的位置。您可以在 scrollViewDidScroll 或 tableViewWillDisplay 单元格或其他地方执行此操作,我敢肯定。但是您需要知道哪些单元格在屏幕上和屏幕外滚动,然后您需要能够询问最上面可见的单元格它的部分是什么。确定当前应该显示的部分后,您可以使用它来滚动代表每个部分背景的自己的 View 集。

本质上,您将在代码中创建每个动态部分背景 View ,只是 UIView 的,每个 View 的 backgroundProperty 设置为重复模式(显然,高度将是动态的)。将所有部分背景 subview (或者最好是懒惰地进行)添加到 UITableView 的背景 View 。

现在,随着 ScrollView 的滚动,您将观察哪些行和部分进出表格 View 。当部分中的行滚动时,计算部分背景的高度(将部分中的行数乘以它们的高度)并调整它的 Y 轴,它位于但被 tableView 的 backgroundView 剪裁。随着部分滚动,您将更新相关部分背景 View 的 Y 偏移量。呸!

另一个想法可能是在 UIScrollView 中抛出所有垂直布局的部分背景 View ,禁用用户交互。将该 ScrollView 放置在您的 TableView 的背景 View 中,然后计算出从本质上将滚动事件从 TableView 的 ScrollView “转发”到您的背景 ScrollView 的数学。

这可能需要一些工作才能找到使您的动画保持流畅和同步的实现,但我认为这是一种可行的方法。

关于iphone - 将 ImageView 设置为分组 uitableview 中部分的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647296/

相关文章:

iphone - 使用具有自定义尺寸的 AVFoundation 录制视频?

ios - navigationController.topViewController 与 Storyboard

php - 通过 objective-c 更新 MySQL

iphone - 要加倍的字符串

iphone - iOS 企业部署/到期

ios - UITabBarItem 外观抛出 EXC_BAD_ACCESS

iphone - 整数 0000 cocos2d

ios - 记录音频数据并将其发送到 C++ 函数

objective-c - Game Center 不响应 authenticateWithCompletionHandler 请求 (iOS)

iphone - 从 NSMutableArray 表格 View 单元格中抓取文本