根据UITableView宽度,图像被拉伸

时间:2013-10-08 08:53:51

标签: ios objective-c uitableview uiimageview

以下是我的结构。

UITableView (304px)
    - UIImageView (as seperator line) (I want this to be 288px) but it stretched to 304 px.
    - UITableViewCell (304 px)
        - UIImageView (background for cell) (288px)
        - Label 1 for text display
        - Label 2 for text display

我正在拉伸UITableView只是为了在黄色部分的末尾采用滚动条,如图所示。

enter image description here

除分隔线外,一切都很完美。

即使我将宽度设置为288并单击其他位置并返回以查看UIImageView的宽度,它也会自动更改为304(即UITableView宽度)。

知道为什么会这样,以及如何制作288像素的分隔线。

注意

分隔线位于UITableViewCell之上。不在UITableViewCell

我所说的分隔线是上图中的第一行。


编辑1

我也尝试使用下面的代码,但仍然将其扩展到304px。

UIImageView *mySep = (UIImageView*)[mainTableView viewWithTag:56565656];
[mySep setFrame:CGRectMake(0,0,288,2)];

编辑2

我已在dropbox上传了示例项目。

请从[mySep release];删除- (void)scrollingFinish {行。其他应用程序崩溃了......

4 个答案:

答案 0 :(得分:3)

我解决了你的问题。在表格视图中,您只能添加2个子视图,如页脚和页眉。一个在细胞上方另一个在下面。这些视图宽度等于UITableview宽度。所以,当你做那样的事情。不只是添加UIImageview首先添加UIView并设置其框架然后添加你的UIImage视图这里是-Fahim Parkar给出的固定示例项目

Fixed Project

答案 1 :(得分:0)

你能检查你的细胞大小吗?

您是使用代码还是使用Storyboard创建单元格对象?

尝试在

中调整imageview的大小
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UIImageView *seperator = (UIImageView*)[cell viewWithTag:_sepTag];
[seperator setFrame:CGRectMake(8,seperator.frame.origin.y,288,seperator.frame.size.height)];

答案 2 :(得分:0)

这是我修复的方式。

我可以说好的作弊。我添加了UIView并将分隔线放在UIView中。将UIView背景颜色设置为clearColor,让UIView尽可能多地伸展。

UITableView (304px)
    - UIView (have width as 304px OR 288px, but background color will be clearColor. This is very important).
        - UIImageView (as seperator line) (This will be 288px).
    - UITableViewCell (304 px)
        - UIImageView (background for cell) (288px)
        - Label 1 for text display
- Label 2 for text display

所以会发生什么是UIView会伸展,但图像只有288像素。由于我们将UIView背景颜色设置为clearColor,因此无法看到拉伸视图。

答案 3 :(得分:0)

我知道它很老的帖子,我也有同样的问题,但我通过修复自动布局中图像视图的高度来纠正它。

希望有所帮助。