uitableview单选,cell

uitableview单选,cell,第1张

首先需要等uitableview加载完数据后你才可以设置哪个cell被默认选中,所以逻辑的处理需要在函数

-(void)viewDidAppear:(BOOL)animated;

中来处理,这是第一点。

第二点要注意的是如何得到这个默认被选中的cell。获取默认选中的uitableviewcell的前提是知道这个cell的索引位置indexpath

int rowIndex=0;

NSIndexPath indexPath =[NSIndexPath indexPathForRow:rowIndex inSection:0];

UITableViewCell cell=[selftableView cellForRowAtIndexPath:indexPath];

一般的话- (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath 这个方法里应该都会设置cell内的显示内容,在didselect里面你把上面那个方法里的[xxxx objectAtIndex:indexPathrow] xxxxx]再次赋给你自己要取指的对象不就可以了么

UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。

使用UICollectionView 必须实现UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout这三个协议。

下面先给出常用到的一些方法。(只给出常用的,其他的可以查看相关API)

#pragma mark -- UICollectionViewDataSource

//定义展示的UICollectionViewCell的个数

-(NSInteger)collectionView:(UICollectionView )collectionView numberOfItemsInSection:(NSInteger)section

{

return 30;

}

//定义展示的Section的个数

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView )collectionView

{

return 1;

}

//每个UICollectionView展示的内容

-(UICollectionViewCell )collectionView:(UICollectionView )collectionView cellForItemAtIndexPath:(NSIndexPath )indexPath

{

static NSString CellIdentifier = @"GradientCell";

UICollectionViewCell cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

cellbackgroundColor = [UIColor colorWithRed:((10 indexPathrow) / 2550) green:((20 indexPathrow)/2550) blue:((30 indexPathrow)/2550) alpha:10f];

return cell;

}

#pragma mark --UICollectionViewDelegateFlowLayout

//定义每个UICollectionView 的大小

- (CGSize)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath )indexPath

{

return CGSizeMake(96, 100);

}

//定义每个UICollectionView 的 margin

-(UIEdgeInsets)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout )collectionViewLayout insetForSectionAtIndex:(NSInteger)section

{

return UIEdgeInsetsMake(5, 5, 5, 5);

}

#pragma mark --UICollectionViewDelegate

//UICollectionView被选中时调用的方法

-(void)collectionView:(UICollectionView )collectionView didSelectItemAtIndexPath:(NSIndexPath )indexPath

{

UICollectionViewCell cell = (UICollectionViewCell )[collectionView cellForItemAtIndexPath:indexPath];

cellbackgroundColor = [UIColor whiteColor];

}

//返回这个UICollectionView是否可以被选择

-(BOOL)collectionView:(UICollectionView )collectionView shouldSelectItemAtIndexPath:(NSIndexPath )indexPath

{

return YES;

}

一般的话-

(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath

)indexPath 这个方法里应该都会设置cell内的显示内容,

在didselect里面你把上面那个方法里的

[xxxx objectAtIndex:indexPathrow] xxxxx]

再次赋给你自己要取指的对象不就可以了么

1大部分的都是叫你将 estimatedRowHeight = 0;来关闭自动布局适配来解决,可这样又会让我的cell高度没法自适应所以我们采用只更新cell内容不更新高度的方式来解决。

用例如下: 点击cell的点赞功能,使点赞数量加1并点亮点赞的图标。

主要步骤在 利用indexpath获取你所点击的哪一行cell,然后重新赋值即可,就不用再去刷新整个tab或者固定的一行celll 了,这样他就不会去计算高度也就不会发生跳动了

myindexrow 是点击的inddexpathrow

 NSIndexPathindexPath=[NSIndexPathindexPathForRow:myindexrow inSection:0];      mysquareCell1 mycell = [selfmytableview cellForRowAtIndexPath:indexPath]                mycellmylabel9text= [NSStringstringWithFormat:@"%ld",(long)(mymodup_like- mymoddown_like)];

mylabel9就是你想要刷新后改变的值。

以上就是关于uitableview单选,cell全部的内容,包括:uitableview单选,cell、怎样获取UITableViewCell相对于UITableView的坐标、ios 怎么获取uicollectionview的可见单元格等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9562881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存