Skip to content

Instantly share code, notes, and snippets.

//
// ViewController.swift
// CollectionViewPractice
//
// Created by nTom on 2020/10/26.
// Copyright © 2020 CollectionViewPractice. All rights reserved.
//
import UIKit
import SnapKit
@azuredark
azuredark / CollectionViewCellDynamicWidth.swift
Created June 2, 2023 15:24 — forked from Taehyeon-Kim/CollectionViewCellDynamicWidth.swift
컬렉션 뷰 셀의 너비를 동적으로 조절하고 싶을 때, How to dynamically adjust the width of the collection view cell.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: categoryTitles[indexPath.item].size(withAttributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: 14)]).width + 20, height: 32)
}
@azuredark
azuredark / EmployeeApiService.swift
Created June 1, 2023 23:59 — forked from seyhunak/EmployeeApiService.swift
Swift 5 - MVVM - ViewController, ViewModel, Model, Datasource, Webservice
import Foundation
class APIService : NSObject {
private let sourcesURL = URL(string: "http://dummy.restapiexample.com/api/v1/employees")!
func apiToGetEmployeeData(completion : @escaping (Employees) -> ()){
URLSession.shared.dataTask(with: sourcesURL) { (data, urlResponse, error) in
if let data = data {
let jsonDecoder = JSONDecoder()
let empData = try! jsonDecoder.decode(Employees.self, from: data)
@azuredark
azuredark / EmployeeApiService.swift
Created June 1, 2023 23:59 — forked from seyhunak/EmployeeApiService.swift
Swift 5 - MVVM - ViewController, ViewModel, Model, Datasource, Webservice
import Foundation
class APIService : NSObject {
private let sourcesURL = URL(string: "http://dummy.restapiexample.com/api/v1/employees")!
func apiToGetEmployeeData(completion : @escaping (Employees) -> ()){
URLSession.shared.dataTask(with: sourcesURL) { (data, urlResponse, error) in
if let data = data {
let jsonDecoder = JSONDecoder()
let empData = try! jsonDecoder.decode(Employees.self, from: data)
@azuredark
azuredark / PageViewControllerSegmentedAdapter.swift
Created June 1, 2023 21:22 — forked from dchohfi/PageViewControllerSegmentedAdapter.swift
Connect UISegmentControll to UIPageViewController
import UIKit
final class PageViewControllerSegmentedAdapter: NSObject {
private let pageViewController: UIPageViewController
fileprivate let segmentControl: UISegmentedControl
fileprivate let viewControllers: [UIViewController]
fileprivate var selectedIndex: Int = 0
init(pageViewController: UIPageViewController, segmentControl: UISegmentedControl, viewControllers: [UIViewController]) {
@azuredark
azuredark / SortedTableView.swift
Created May 10, 2023 23:56 — forked from 128keaton/SortedTableView.swift
Sorting a UITableView by a NSDate object with headers in Swift
extension NSDate{
convenience
init(inputDate: NSDate){
let calendar = NSCalendar.currentCalendar()
let timeZone = NSTimeZone.systemTimeZone()
calendar.timeZone = timeZone
let comps = calendar.components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day ], fromDate: inputDate)
comps.hour = 0
comps.minute = 0
comps.second = 0
@azuredark
azuredark / MVVMPlayground.swift
Created April 19, 2023 15:00 — forked from crenwick/MVVMPlayground.swift
MVVM-ProtocolOriented
import UIKit
///////////////
// View Cell //
///////////////
protocol SwitchWithTextCellDataSource {
var title: String { get }
var switchOn: Bool { get }
}
@azuredark
azuredark / DataPassing.swift
Created December 23, 2022 01:38 — forked from AghaShahriyar/DataPassing.swift
Passing data between ViewControllers using closure in swift
//Passing Data Between ViewControllers Using Closure
//In this model, i am considering two viewController i-e PresentViewController and ParentViewController. Closure is used to pass the data from PresentVC to ParentVC after the dismiss of PersentVC.
//PresentViewController
//Declaration of closure and assigning to completionHandler
typealias sourceClosure = ((_ source: DataModel?) -> Void)
var sourceCompletionHandler: sourceClosure?
@azuredark
azuredark / httpRequest.m
Created November 25, 2022 01:31 — forked from pbakondy/httpRequest.m
HTTP Request Objective-C implementations
#import <Foundation/Foundation.h>
@interface MyNetwork : NSObject
- (NSData* )httpRequestWithURL:(NSURL *)url httpMethod:(NSString *)httpMethod body:(NSData *)body contentType:(NSString *)contentType error:(NSError **)error;
@end
@implementation MyNetwork
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
guard let headerView = tableView.tableHeaderView else {
return
}
// The table view header is created with the frame size set in
// the Storyboard. Calculate the new size and reset the header
// view to trigger the layout.