在我的var shareButtonTapped = false
中,我有一个变量:
shareButton
我希望当我点击navigationBar
上的shareButton
时,它会显示所有单元格的shareButton,但indexPath.row == 0的单元格除外。
以下是@IBAction func shareButtonTapped(sender: AnyObject) {
shareButtonTapped = !shareButtonTapped
collectionView.reloadData()
}
:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! GiftCollectionViewCell
if shareButtonTapped {
cell.gift = gifts[indexPath.row]
let shareButton = FBSDKShareButton(frame: CGRect(x: 0, y: 0, width: 80, height: 30))
shareButton.tag = 1
let photo = FBSDKSharePhoto()
photo.image = gifts[indexPath.row].image
photo.userGenerated = true
let content = FBSDKSharePhotoContent()
content.photos = [photo]
content.contentURL = NSURL(string: "http://www.fantageek.com")
shareButton.shareContent = content
cell.contentView.addSubview(shareButton)
return cell
} else {
cell.gift = gifts[indexPath.row]
return cell
}
}
这是CollectionViewDataSource方法:
shareButton
有效:
但我想再次点击NavigationBar
上的shareButton
,每个小区内的所有layout-land
都会消失。怎么做?
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
在removeFromSuperview()
区块内使用else
方法:
else {
cell.gift = gifts[indexPath.row]
for subview in cell.contentView.subviews {
if subview is FBSDKShareButton {
subview.removeFromSuperview()
}
}
return cell
}
答案 1 :(得分:1)
更好的方法是保持共享按钮始终是单元格的一部分。并根据shareButtonTapped栏按钮的状态显示和隐藏按钮。
让我们说你的按钮名称是shareImage然后是cellForRow
cell.shareButton.hidden = false
if(shareButtonTapped){
cell.shareButton.hidden = true
}