我有多个didSelectItemAtIndexPath
。当用户点击特定单元格时,我希望我的应用程序更改触摸单元格的背景图像。
我的方法是专注于func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
var cell: UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("cellIdentifier", forIndexPath: indexPath) as! UICollectionViewCell
cell.backgroundView = UIImageView(image: UIImage(named: "myImage"))
}
方法。触摸单元格时,将调用此方法。
indexPath
然而,我不能让它工作,但我不知道为什么。该问题可能与indexPath.row
有关,但不会返回正确的单元格值。我尝试使用Int
,这确实会返回UICollectionViewCell
个单元格。
更重要的是,我还使用var
创建了一个新的UICollectionViewCell
,但此单元格已经存在。
为什么单元格不更新其背景图像?如何更改用户触摸的angular.module('Cust').factory('CustomizingService', ['$resource', function ($resource) {
var url = 'http://localhost:31736/Service1.svc/:link/';
return {
Customizing: $resource(url, {callback: 'JSON_CALLBACK'}, {
customers: {
method: 'JSONP', transformResponse: function(data) {return angular.fromJson(data).body.rows},
params: { link: 'GetCustomers', numberOf: '@numberOf', valid = @valid },
isArray: true },...
的背景图像?
答案 0 :(得分:4)
我完全赞同Josh的答案,但是如果你使用didSelectItemAtIndexPath
方法更改背景图像,它也可以正常工作。然后,您可以使用cellForRowAtIndexPath
方法返回指定UITableViewCell
处的indexPath
,如下所示:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell!
cell.backgroundView = UIImageView(image: UIImage(named: "photo2"))
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
cell.backgroundView = UIImageView(image: UIImage(named: "photo1"))
cell.selectionStyle = .None
return cell
}
我只是将selectionStyle
放到.None
以避免突出显示。我希望这能帮到你。