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 / 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 / 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 / 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 / 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 / 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 / saccessibility6.swift
Created January 14, 2019 16:45
swiftsaccessibility6.swift
class SectionHeader: UICollectionReusableView {
override func awakeFromNib() {
super.awakeFromNib()
accessibilityTraits.insert(.header)
}
}
@mecid
mecid / saccessibility7.swift
Last active February 11, 2019 08:33
saccessibility7.swift
import UIKit
class BarChartView: UIView {
private enum Layout {
static let barWidth: CGFloat = 30
static let maxHeightRatio: CGFloat = 0.8
}
var values: [Double] = [] {
didSet {
@mecid
mecid / saccessibility8.swift
Last active February 11, 2019 08:33
saccessibility8.swift
override func layoutSubviews() {
super.layoutSubviews()
guard let max = values.max() else { return }
subviews.forEach { $0.removeFromSuperview() }
var x: CGFloat = Layout.barWidth
let maxHeight: CGFloat = bounds.height * Layout.maxHeightRatio
var accessibilityElements: [UIAccessibilityElement] = []
values.forEach { value in
let height = CGFloat(value / max) * maxHeight
@mecid
mecid / StackViewController.swift
Created February 26, 2019 11:05
StackViewController
import UIKit
class StackViewController: UIViewController {
private let scrollView = UIScrollView()
private let stackView = UIStackView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(scrollView)
scrollView.addSubview(stackView)
@mecid
mecid / cia1.swift
Created June 19, 2019 12:08
Combine in action post's source code
import Foundation
import Combine
struct Repo: Decodable {
var id: Int
let owner: Owner
let name: String
let description: String
struct Owner: Decodable {