我只是想知道爲什麼UIButton的發件人不是唯一的或不斷變化的。我有一個充滿活力的tableview(大約100行),每個單元格中都有一個按鈕。所有按鈕都具有動態的標籤ID。在點擊事件功能,我想改變按鈕,做一些其他的東西。Xcode6 swift UIButton發件人不是唯一的嗎?
如果我使用按鈕發件人標識例如改變顏色也會改變列表中的另一個按鈕。
似乎發送者在滾動時正在改變。奇怪。
對不起,很愚蠢。我認爲有一些明顯的東西我錯過了。
func followButtonTapped(sender: UIButton) {
println(sender)
println("UserID: \(sender.tag)")
sender.enabled = false
sender.backgroundColor = UIColor.grayColor()
sender.setTitle("...", forState: UIControlState.Normal)
}
下面的示例發件人:
<UIButton: 0x7fe5249bacd0; frame = (297 17; 63 24); opaque = NO; autoresize = RM+BM; tag = 1147; layer = <CALayer: 0x7fe5249c2b10>>
UserID: 1147
這裏我的cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
tableView.tableFooterView = UIView(frame: CGRectZero)
tableView.estimatedRowHeight = 58
var cell : followCell! = tableView.dequeueReusableCellWithIdentifier(followCellIdentifier) as followCell!
if(cell == nil){
cell = NSBundle.mainBundle().loadNibNamed(followCellIdentifier, owner: self, options: nil)[0] as followCell;
}
cell?.followName?.text=self.maintext[indexPath.row]
cell?.followSubtext?.text = self.subtext[indexPath.row]
cell?.followButton?.addTarget(self, action: "followButtonTapped:", forControlEvents: .TouchUpInside)
cell?.followButton?.tag = self.UserIds[indexPath.row].toInt()!
var image = UIImage(named: "default_avatar_40.jpg")
var imgURL: NSURL = NSURL(string: self.images[indexPath.row])!
let request: NSURLRequest = NSURLRequest(URL: imgURL)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in
if error == nil {
var image = UIImage(data: data)
if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) as? followCell {
cellToUpdate.followImage.image = image
}
}
})
cell?.backgroundColor = UIColor.clearColor()
return cell as followCell
}
感謝@vacawama您的快速回復,但我沒有得到這個工作。有沒有辦法操縱細胞標識符?我剛剛添加了我的cellForRowAtIndexPath – Norman
您的表格可能有100個行,但只會分配大約8個單元格。當他們從屏幕上滾動時,他們被放入重用隊列並重新使用。你不應該依賴單元來保存任何狀態數據。任何狀態都應該在表格單元外部進行。這正是我試圖用'selected'數組提出的建議。 – vacawama