Skip to content

Instantly share code, notes, and snippets.

View mecid's full-sized avatar
🏠
Working from home

Majid Jabrayilov mecid

🏠
Working from home
View GitHub Profile
@mecid
mecid / saccessibility6.swift
Created January 14, 2019 16:45
swiftsaccessibility6.swift
class SectionHeader: UICollectionReusableView {
override func awakeFromNib() {
super.awakeFromNib()
accessibilityTraits.insert(.header)
}
}
@mecid
mecid / saccessibility5.swift
Created January 14, 2019 14:54
saccessibility5
import UIKit
class RatingView: UIView {
private(set) var value: Int = 1
override var accessibilityTraits: UIAccessibilityTraits {
get { return .adjustable }
set {}
}
@mecid
mecid / saccessibility4.swift
Created January 14, 2019 14:22
saccessibility4.swift
import UIKit
class ViewController: UIViewController {
override func accessibilityPerformEscape() -> Bool {
dismiss(animated: true)
return true
}
}
@mecid
mecid / saccessibility3.swift
Created January 4, 2019 10:42
saccessibility3.swift
struct PresentationViewModel {
let title: String
let summary: String
let date: String
init(presentation: Presentation) {
title = presentation.title
summary = presentation.summary
date = DateFormatter.short.string(from: presentation.date)
}
@mecid
mecid / saccessibility2.swift
Last active January 4, 2019 10:34
saccessibility2.swift
class PresentationCell: UITableViewCell {
var viewModel: PresentationViewModel? {
didSet {
accessibilityLabel = viewModel?.label
accessibilityValue = viewModel?.value
}
}
override func awakeFromNib() {
super.awakeFromNib()
@mecid
mecid / saccessibility1.swift
Last active January 4, 2019 10:11
saccessibility1.swift
protocol UIAccessibility: AnyObject {
var isAccessibilityElement: Bool { get set }
var accessibilityTraits: UIAccessibilityTraits { get set }
var accessibilityLabel: String? { get set }
var accessibilityValue: String? { get set }
}
@mecid
mecid / accessibility2.swift
Last active July 9, 2018 10:12
accessibility2
let elements = statistics.enumerated().map {
let frame = CGRect(x: 0, y: CGFloat($0 * Layout.barHeight), width: bounds.width, height: Layout.barHeight)
let element = UIAccessibilityElement(accessibilityContainer: self)
element.accessibilityLabel = $1.time
element.accessibilityValue = "\(Int($1.value)), \($1.status)"
element.accessibilityFrameInContainerSpace = frame
return element
}
self.accessibilityElements = elements
self.isAccessibilityElement = true
self.accessibilityLabel = "\(date), \(value) - \(status)"
self.accessibilityTraits |= UIAccessibilityTraitButton
@mecid
mecid / ViewModelComposition.swift
Last active September 12, 2018 19:45
Mastering MVVM
import Bond
import ReactiveKit
class UserProfileViewModel {
let refreshing = Observable<Bool>(false)
let username = Observable<String>("")
let photos = Observable<[Photos]>([])
private let userViewModel: UserViewModel
private let photosViewModel: PhotosViewModel
class ItemsViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
private let activityIndicator = ActivityIndicatorView()
private var viewModel: ItemsViewModel
init(viewModel: ItemsViewModel) {
self.viewModel = viewModel
super.init(nibName: nil, bundle: nil)
}