- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个应用程序作为 appleTV 的概念验证。我正在尝试显示一个队列。在不同的部门是分开的。我们有 Mac、iPhone、iPad……我想自动更新我的 collectionView 以显示哪个部门正在显示。
我已经成功地自动更新了我的 tableview。
有什么东西没看到吗?
这是我的 Controller 的代码
class QueueViewController : UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UITableViewDelegate, UITableViewDataSource {
var departments = [Department]()
var users = [User]()
let dateFormatter = NSDateFormatter()
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
print("QueueViewController")
collectionView.delegate = self
collectionView.dataSource = self
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "BackgroundQueue")!)
fetchDepartments()
dateFormatter.dateFormat = "HH:mm"
}
override func viewWillAppear(animated: Bool) {
//Hier moet de fetch task worden uitgevoerd
if departments.count > 0 {
startTimer()
}
}
override func viewWillDisappear(animated: Bool) {
stopTimer()
}
//MARK: - CollectionView
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return departments.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! DepartmentItemCell
let department = departments[indexPath.row]
let title = department.name
cell.DepartmentButton.setTitle(title, forState: .Normal)
cell.DepartmentButton.backgroundColor = UIColor.clearColor()
cell.DepartmentButton.restorationIdentifier = department.id
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("indexpath :\(indexPath.row)")
}
@IBAction func selectDepartment(sender: AnyObject) {
fetchQueueForDepartment(sender.restorationIdentifier!!)
}
//MARK: - TableView
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return users.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("tableCell") as! QueueItemCell
let user = users[indexPath.row]
if indexPath.row == 0 {
let attributes = [
NSUnderlineStyleAttributeName : 1]
let title = NSAttributedString(string: "\(user.firstname!) \(user.lastname!)", attributes: attributes) //1
cell.nameLabel.attributedText = title
return cell
}
cell.nameLabel.text = "\(user.firstname!) \(user.lastname!)"
cell.arrivalLabel.text = user.arrivalDate == nil ? "" : dateFormatter.stringFromDate(user.arrivalDate!)
return cell
}
//MARK: - Focus update
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)
}
//Zorgt ervoor dat je de cellen in collectionview kan selecteren. focus op zetten
func collectionView(collectionView: UICollectionView, canFocusItemAtIndexPath indexPath: NSIndexPath) -> Bool
{
return false
}
//MARK: - Parse
func fetchDepartments(){
SVProgressHUD.show()
ParseService.sharedInstance.fetchDepartments({
(error, data) -> () in
if let json_data = data?["result"] {
self.departments = DepartmentHandler.parseJson(json_data!)
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
print("succeed")
self.collectionView.reloadData()
SVProgressHUD.dismiss()
//Eerste departement
self.fetchQueueForDepartment(self.departments[0].id!)
self.startTimer()
})
}
})
}
func fetchQueueForDepartment(identifier: String){
SVProgressHUD.show()
ParseService.sharedInstance.fetchUsersPerDepartment(identifier,completion:{
(error, data) -> () in
if let json_data = data?["result"] {
self.users = UserHandler.parseJSon(json_data!)
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
print("succeed")
self.tableView.reloadData()
//self.updateFocusCell()
SVProgressHUD.dismiss()
})
}
})
}
//-----------------------------------------------
//For the loop
var timer: dispatch_source_t!
var item = 0
//MARK: - Loop fetch
func startTimer() {
let queue = dispatch_queue_create("com.icapps.caps", nil)
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue)
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC, 1 * NSEC_PER_SEC) // every 10 seconds, with leeway of 1 second
dispatch_source_set_event_handler(timer) {
// do whatever you want here
let indexPath = NSIndexPath(forRow: self.item, inSection: 0)
self.fetchQueueForDepartment(self.departments[indexPath.row].id!)
self.collectionView.selectItemAtIndexPath(indexPath, animated: true, scrollPosition: .None)
print(self.item)
print(self.departments[indexPath.row].name!)
self.item++
if self.item == self.departments.count {
self.item = 0
}
}
dispatch_resume(timer)
}
func stopTimer() {
if timer != nil {
print("Stop")
dispatch_source_cancel(timer)
timer = nil
}
}
}
最佳答案
可以使用collectionview Delegate方法,方法名是
func collectionView(collectionView: UICollectionView, didUpdateFocusInContext context: UICollectionViewFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)
{
}
你可以像这样使用这个方法......
func collectionView(collectionView: UICollectionView, didUpdateFocusInContext context: UICollectionViewFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
if let previousIndexPath = context.previouslyFocusedIndexPath,
let cell = collectionView.cellForItemAtIndexPath(previousIndexPath) {
cell.contentView.layer.borderWidth = 0.0
cell.contentView.layer.shadowRadius = 0.0
cell.contentView.layer.shadowOpacity = 0
}
if let indexPath = context.nextFocusedIndexPath,
let cell = collectionView.cellForItemAtIndexPath(indexPath) {
cell.contentView.layer.borderWidth = 8.0
cell.contentView.layer.borderColor = UIColor.blackColor().CGColor
cell.contentView.layer.shadowColor = UIColor.blackColor().CGColor
cell.contentView.layer.shadowRadius = 10.0
cell.contentView.layer.shadowOpacity = 0.9
cell.contentView.layer.shadowOffset = CGSize(width: 0, height: 0)
collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: [.CenteredHorizontally, .CenteredVertically], animated: true)
}
}
关于swift - 突出显示当前 UICollectionViewCell tvOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135728/
堆栈:Mac OS 10.15.6,Xcode 版本 12.0 (12A7209) 我有一个自行调整大小的收集单元。我覆盖 preferredLayoutAttributesFitting获得自我调整
我有一个 Storyboard,它是在 Xcode 6 中创建的,带有 Collection View ,并且单元格具有不同的大小类变化,例如不同的字体大小......( Storyboard中创建的
我有一个 UICollectionView,只有 1 个部分,该部分中有许多单元格。我启用了拖放行为(使用长按手势识别器,因为 UICollectionView 位于通用 UIViewControll
按照我的老问题here : How to add UIView inside a UITableViewCell Programmatically? 我想通过在这些 collectionViewCel
我将 UICollectionViewCell 与父 UICollectionViewCell 中的按钮一起使用: protocol DayCellDelegate { func button
例如,我有 10 个单元格的 UICollectionView。我想为选定的单元格添加边框,稍后,在选择另一个单元格时,想要删除以前的边框并为新的选定单元格添加边框。 我怎样才能做到这一点? 我已经试
我有一个 UICollectionViewCell(比如 UICollectionViewCell 1),单元格内有一个按钮和 UITextfields。连接到 (ViewController 1)
我在单个 UICollectionViewCell 内有 (3) UITextViews、(1) UITextField 和 (1) UILabel >。当文本换行到第二行时,在符合 UITextVi
我对 TableVieCell 中的 collectionView 有疑问。当我点击 collectionCell 时,didSelectItemAt 不会被调用。我在 collectionCell
我最近在我的 Storyboard中添加了一个 UICollectionView,它当前被另一个 View 插入 View ,这似乎工作正常但是,使用 Storyboard编辑器我将 View 设置为
我想在 UICollectionViewCell 上开始一些动画当用户点击一个单元格时。我的想法是在 didSelectItemAtIndexPath 中选择相应的单元格并触发动画。但是,这不起作用:
我可以通过使用手势识别器拖动它并简化新的 iOS 9 对重新排序的支持来重新排序 iOS 9 上的 UICollectionViewCells。 public func beginInteractiv
我正在开发一个应用程序,其中我在 UICollectionView 中实现了编辑模式。我正在尝试实现如下所示的内容: 当我单击编辑按钮时,相机按钮和眼睛按钮应隐藏,删除和重命名按钮应如下所示: 编辑后
我希望所有单元格之间以及屏幕边框和最近的单元格之间的间距相等。基本上是这样的。内部和周围的间距相等。 我设法通过设置这样的值在界面生成器中测试这一点。我将单元格大小设置为 110,最小间距设置为 0,
我已经设置了一个 UICollectionView,如下所示。我正在尝试设置自定义单元格高度,以便该集合在必须滚动之前适合屏幕上的 3 个单元格。但是,这种定制工作不起作用或似乎被忽略了。有谁知道我做
我在不使用 Storyboard的情况下以编程方式创建了 UICollectionView 和 UICollectionViewCell,但是发生了一些事情,我无法理解为什么。 BKPhotoCell
我正在寻找制作图片库。我希望我的图像全屏显示,但不确定这如何与自动布局一起使用。我知道有一种方法可以返回单元格的大小,但不知道我是否应该只获取屏幕大小并返回它,或者是否有使用自动布局的方法。 最佳答案
我有一个问题, 我有一个简单的 UICollectionView,其中包含从 Flickr 加载图像的静态 200 个单元格。 我的 CellForItemAtIndexPath 看起来像这样: -
以下代码是一个非常简单的程序,用于在 UICollectionView 中显示 1-10000 之间的数字。 .它在不滚动的情况下正确显示,但是如果您向下滚动并向后滚动 Collection View
这个问题在这里已经有了答案: UICollectionViewLayout Not working with UIImage in Swift 5 and Xcode 11 (2 个答案) 关闭 2
我是一名优秀的程序员,十分优秀!