ios开发 在cell中动态添加图片解决重复出现图层问题

1.在cell初始化的时候创建scrollView,然后往scrollView中添加imageView,最后在重用cell的时候动态计算scrollView的高度

总而言之,就是初始化创建控件要放在cell的init里面,赋值放init外面,不然每次循环都会重复创建imageView视图

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

  UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"cellid"];

    if (cell==nil) {

       cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellid"];

     //滚动视图

      self.scrollView=[[UIScrollView alloc]init];  

     self.scrollView.tag=9;

     //为scrollview创建图片

       CGFloat scrollviewWidth=[UIScreen mainScreen].bounds.size.width-26;

       int hang=[self.imagesArray count]%3==0? (int)[self.imagesArray count]/3:(int)[self.imagesArray count]/3+1;

      int imgwidth=(scrollviewWidth-10)/3;

       for (int i=0; i<hang; i++) {

      for (int j=0; j<3; j++) {

                  if (i*3+j==self.imagesArray.count) {

              break;

           }

          UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(j*(imgwidth+5), i*(imgwidth+5), imgwidth, imgwidth)];

           imgView.image=[UIImage imageNamed:[self.imagesArray objectAtIndex:i*3+j]];

          [self.scrollView addSubview:imgView];

       }

      }

    [cell.contentView addSubview:self.scrollView];

  }

  else{

    self.scrollView=(UIScrollView *)[cell.contentView viewWithTag:9];

  }

  //根据文字数量计算UILabelContent高度(已修改)

    CGFloat labelWidth=[UIScreen mainScreen].bounds.size.width-26;

      NSDictionary *attrs=@{NSFontAttributeName:self.labelContent.font};

    CGSize maxSize=CGSizeMake(labelWidth, MAXFLOAT);

   CGSize size=[self.labelContent.text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;

   self.labelContent.frame=CGRectMake(13, 89, size.width, size.height);

   //scrollview随着图片的增多而变高

  CGFloat scrollviewWidth=[UIScreen mainScreen].bounds.size.width-26;

  int hang=[self.imagesArray count]%3==0? (int)[self.imagesArray count]/3:(int)[self.imagesArray count]/3+1;

   int imgwidth=(scrollviewWidth-10)/3;

   self.scrollView.backgroundColor=[UIColor lightGrayColor];

   self.scrollView.frame=CGRectMake(13, 89+size.height+10, scrollviewWidth, (hang)*imgwidth+(hang-1)*5);

}

时间: 2024-10-06 11:43:14

ios开发 在cell中动态添加图片解决重复出现图层问题的相关文章

Winform DataGridView列的单元格中动态添加图片和文字

先上图在说,第二列中图片和文字的样式 1.需要重写DataGridViewTextBoxColumn,新建类TextAndImageColumn.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Windows.Forms; 6 using System.Drawing; 7 8 namespace DataGridView

iOS开发UI篇—Quartz2D使用(图片剪切)

iOS开发UI篇-Quartz2D使用(图片剪切) 一.使用Quartz2D完成图片剪切 1.把图片显示在自定义的view中 先把图片绘制到view上.按照原始大小,把图片绘制到一个点上. 代码: 1 - (void)drawRect:(CGRect)rect 2 { 3 UIImage *image2=[UIImage imageNamed:@"me"]; 4 [image2 drawAtPoint:CGPointMake(100, 100)]; 5 } 显示: 2.剪切图片让图片圆

android 在布局中动态添加控件

第一步 Java代码 final LayoutInflater inflater = LayoutInflater.from(this); 第二步:获取需要被添加控件的布局 Java代码 final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01); 第三步:获取需要添加的布局(控件) Java代码 LinearLayout layout = (LinearLayout) inflater.inflate( R

Android HorizontalScrollView 水平滑动 在listview上面动态添加图片

Android HorizontalScrollView   水平滑动    listview 上动态添加图片 最近遇到了个 在listview展示广告的需要动态添加图片 如图: 使用了 horizontalScrollView   在listview上进行添加 java代码: package com.baozi.bzhorizontalscrollview; import java.util.ArrayList; import android.app.Activity; import andr

Android 在布局容器中动态添加控件

这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉已有的控件 3.使用,来个小demo就明白了 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

在CFormView或对话框中动态添加CScrollView、CFormView

在CFormView或对话框中动态添加CScrollView.CFormView 本代码可以在CFormView中,根据事先画好的控件位置创建CScrollView 也可以在CDialog中创建CScrollView.CFormView等 注: 若以下代码放在CMainRightView::OnCreate(LPCREATESTRUCT lpCreateStruct)内,则GetDlgItem()函数将调用失败,因为此时控件都还未被创建! void CMainRightView::OnIniti

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断 项目里面在点击tabbarItem的时候需要判断是否是登录状态,如果未登录直接跳转登录页面,如果已登录则直接进入. 首先设置UITabBarController的代理为appdelegate如下:myTabBar.delegate = self; 然后在interface后面写上代理<UITabBarControllerDelegate> 实现代理里面的- (BOOL)tabBarController:(UITabBarCont

Android代码中动态设置图片的大小(自动缩放),位置

项目中需要用到在代码中动态调整图片的位置和设置图片大小,能自动缩放图片,用ImageView控件,具体做法如下: 1.布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

Android在布局中动态添加view的两种方法

一.说明 添加视图文件的时候有两种方式:1.通过在xml文件定义layout:2.java代码编写 二.前言说明 1.构造xml文件 2.LayoutInflater 提到addview,首先要了解一下LayoutInflater类.这个类最主要的功能就是实现将xml表述的layout转化为View的功能.为了便于理解,我们可以将它与findViewById()作一比较,二者都是实例化某一对象,不同的是findViewById()是找xml布局文件下的具体widget控件实例化,而LayoutI