Twitter 套件 - iOS
Twitter kit - iOS
我认为 Twitter Kit 应该可以帮助开发人员在几行代码中集成 Twitter。至少可以说在线文档很差。我只是想在 table 视图控制器内的我的应用程序中显示单个用户的时间轴。我想只读,只允许来宾访问时间线。以下来自在线文档的 copy/paste 只是显示了 2 个单元格,其中填充了灰色图像和 Twitter 徽标,但没有推文。怎么了?谢谢
import UIKit
import TwitterKit
class TwitterViewController: UITableViewController, TWTRTweetViewDelegate {
let tweetTableReuseIdentifier = "TweetCell"
// Hold all the loaded Tweets
var tweets: [TWTRTweet] = [] {
didSet {
tableView.reloadData()
}
}
let tweetIDs = ["20", // @jack's first Tweet
"510908133917487104"] // our favorite bike Tweet
override func viewDidLoad() {
// Setup the table view
tableView.estimatedRowHeight = 150
tableView.rowHeight = UITableViewAutomaticDimension // Explicitly set on iOS 8 if using automatic row height calculation
tableView.allowsSelection = false
tableView.registerClass(TWTRTweetTableViewCell.self, forCellReuseIdentifier: tweetTableReuseIdentifier)
Twitter.sharedInstance().logInGuestWithCompletion { guestSession, error in
if (guestSession != nil) {
// make API calls that do not require user auth
} else {
println("error: \(error.localizedDescription)");
}
}
// Load Tweets
Twitter.sharedInstance().APIClient.loadTweetsWithIDs(tweetIDs) { tweets, error in
if let ts = tweets as? [TWTRTweet] {
self.tweets = ts
} else {
println("Failed to load tweets: \(error.localizedDescription)")
}
}
}
// MARK: UITableViewDelegate Methods
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tweets.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let tweet = tweets[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier(tweetTableReuseIdentifier, forIndexPath: indexPath) as TWTRTweetTableViewCell
cell.tweetView.delegate = self
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let tweet = tweets[indexPath.row]
return TWTRTweetTableViewCell.heightForTweet(tweet, width: CGRectGetWidth(self.view.bounds))
}
}
您需要拨打:cell.configureWithTweet(tweet)
在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
这里是 Steven,Twitter 套件开发人员之一。
现在最好的方法是继承 TWTRTimelineViewController
并设置 dataSource
属性.
class UserTimelineViewController: TWTRTimelineViewController, TWTRTweetViewDelegate {
convenience init() {
// Show a timeline of @jack's Tweets
let dataSource = TWTRUserTimelineDataSource(screenName: "jack", APIClient: TWTRAPIClient())
self.init(dataSource: dataSource)
// Set the title for Nav bar
self.title = "@\(dataSource.screenName)"
}
func tweetView(tweetView: TWTRTweetView, didSelectTweet tweet: TWTRTweet) {
// Log a message whenever a user taps on a tweet
print("Selected tweet with ID: \(tweet.tweetID)")
}
}
我认为 Twitter Kit 应该可以帮助开发人员在几行代码中集成 Twitter。至少可以说在线文档很差。我只是想在 table 视图控制器内的我的应用程序中显示单个用户的时间轴。我想只读,只允许来宾访问时间线。以下来自在线文档的 copy/paste 只是显示了 2 个单元格,其中填充了灰色图像和 Twitter 徽标,但没有推文。怎么了?谢谢
import UIKit
import TwitterKit
class TwitterViewController: UITableViewController, TWTRTweetViewDelegate {
let tweetTableReuseIdentifier = "TweetCell"
// Hold all the loaded Tweets
var tweets: [TWTRTweet] = [] {
didSet {
tableView.reloadData()
}
}
let tweetIDs = ["20", // @jack's first Tweet
"510908133917487104"] // our favorite bike Tweet
override func viewDidLoad() {
// Setup the table view
tableView.estimatedRowHeight = 150
tableView.rowHeight = UITableViewAutomaticDimension // Explicitly set on iOS 8 if using automatic row height calculation
tableView.allowsSelection = false
tableView.registerClass(TWTRTweetTableViewCell.self, forCellReuseIdentifier: tweetTableReuseIdentifier)
Twitter.sharedInstance().logInGuestWithCompletion { guestSession, error in
if (guestSession != nil) {
// make API calls that do not require user auth
} else {
println("error: \(error.localizedDescription)");
}
}
// Load Tweets
Twitter.sharedInstance().APIClient.loadTweetsWithIDs(tweetIDs) { tweets, error in
if let ts = tweets as? [TWTRTweet] {
self.tweets = ts
} else {
println("Failed to load tweets: \(error.localizedDescription)")
}
}
}
// MARK: UITableViewDelegate Methods
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tweets.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let tweet = tweets[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier(tweetTableReuseIdentifier, forIndexPath: indexPath) as TWTRTweetTableViewCell
cell.tweetView.delegate = self
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let tweet = tweets[indexPath.row]
return TWTRTweetTableViewCell.heightForTweet(tweet, width: CGRectGetWidth(self.view.bounds))
}
}
您需要拨打:cell.configureWithTweet(tweet)
在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
这里是 Steven,Twitter 套件开发人员之一。
现在最好的方法是继承 TWTRTimelineViewController
并设置 dataSource
属性.
class UserTimelineViewController: TWTRTimelineViewController, TWTRTweetViewDelegate {
convenience init() {
// Show a timeline of @jack's Tweets
let dataSource = TWTRUserTimelineDataSource(screenName: "jack", APIClient: TWTRAPIClient())
self.init(dataSource: dataSource)
// Set the title for Nav bar
self.title = "@\(dataSource.screenName)"
}
func tweetView(tweetView: TWTRTweetView, didSelectTweet tweet: TWTRTweet) {
// Log a message whenever a user taps on a tweet
print("Selected tweet with ID: \(tweet.tweetID)")
}
}