Each will involve a knowledge point, the latter will be organized into a module

static inline void

HSNumbersViewCell. M file

Static void HSNumbersAdjustRowView(UIView *self, HSNumbersRowView *rowView) {if (@available(iOS 11.0, *)) { rowView.frame = CGRectMake(self.bounds.origin.x + rowView.edgeInsets.left, self.bounds.origin.y + rowView.edgeInsets.top, self.bounds.size.width - rowView.edgeInsets.left - rowView.edgeInsets.right - self.safeAreaInsets.right - self.safeAreaInsets.left, self.bounds.size.height - rowView.edgeInsets.top - rowView.edgeInsets.bottom); } else { rowView.frame = CGRectMake(self.bounds.origin.x + rowView.edgeInsets.left, self.bounds.origin.y + rowView.edgeInsets.top, self.bounds.size.width - rowView.edgeInsets.left - rowView.edgeInsets.right, self.bounds.size.height - rowView.edgeInsets.top - rowView.edgeInsets.bottom); }};Copy the code

Gitflow flow

AsyncDisplayKit document

AsyncDisplayKit document AsyncDisplayKit document

Uiview refresh mechanism lifecycle

How does iOS View refresh iOS UIView refresh

IOS boundingRectWithSize error when calculating text height

    CGRect VIXLabelRect = [self.VIXLabel.text boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.VIXLabel.font} context:nil];
[self.VIXLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.VIXBGView.mas_top);
        make.left.equalTo(self.VIXBGView.mas_left);
        make.bottom.equalTo(self.VIXBGView.mas_bottom);
        make.width.mas_equalTo(ceilf(VIXLabelRect.size.width));
    }];
Copy the code

Calculates the width and height of the string

Navigation updates and advanced navigation

The iOS navigation control will enable you to retrieve the navigation code for screen fitting

Git ignore UserInterfaceState xcuserstate

Truth – > : git ignore UserInterfaceState. Xcuserstate

See Creating Gitignore

MVC Practical case study of iOS design pattern — MVC pattern

IOS Architecture Patterns (MVC/MVCS/MVP/MVVM/VIPER)

Constraints related

Code dynamically modify xiB internal controller size

Automatic packing

Jenkins + dandelion

git

Remote: HTTP Basic: Access denied

UIView

UIView document

SetNeedsLayout and layoutIfNeeded!

Cocoapods privatized warehouse

CocoaPods builds private libraries

Xcrun: error: Unable to find Utility “simctl” error solution

Pod repo push LSHSpec lshpodlib. podspec error The NAME. Podspec specification does not validate

The NAME.podspec specification does not validate

RAC

🔥🔥🔥 summary of iOS development technologies and documents about core functions. Emoji keyboard layout, large file fragmentation upload, MVC based base class design, MVVM+RAC practice, wechat circle of friends implementation scheme, etc.

🔥 iOS uses MVVM + RAC + ViewModel-based Navigation to build the overall basic architecture of WeChat (WeChat 7.0.0+), and realize WeChat circle of friends, address book, drop-down applet, search and other main functions. The code specification is amazing, the detailed annotation is outrageous, the details are refined, the core function is equipped with documentation, and the native App visual experience is close to 98% restore. There is not much code and many annotations. (Stay tuned for updates and welcome Star and Fork…)

Lei Chunfeng Daishen open source MVVMReactiveCocoa framework

IOS ReactiveCocoa Learning Notes (part 1)

IOS: RACSignal – RACSignal

The import

pod 'ReactiveCocoa', :git => 'https://github.com/zhao0/ReactiveCocoa.git', H "#import" racCompounder. h" #import "racCompounder. h" #import" racCompounder. h" #import "subAViewController.h" #import "RACSubject.h" #import "RACCommand.h" #import <RACEXTScope.h> #import "RACSubscriptingAssignmentTrampoline.h" #import "NSObject+RACPropertySubscribing.h" #import "UIControl+ racsignalSupport. h" #import "NSNotificationCenter+ racsupport. h" #import "NSObject+ raccule. h https://www.cnblogs.com/ningmengcao-ios/p/6803878.htmlCopy the code

Assert the difference and usefulness of NSAssert() and NSParameterAssert

How to understand UIButton imageEdgeInsets and titleEdgeInsets

_cmd represents the current selector

-(void)touchABC {NSLog(@" print result: %@",NSStringFromSelector(_cmd)); // Print the result: touchABC}Copy the code

Git rollback to history node (SourceTree article)

Xcode keeps going in circles

1. Clear the XCode cache and restart XCode.

rm -frd ~/Library/Caches/com.apple.dt.Xcode/*
rm -frd ~/Library/Developer/Xcode/DerivedData
Copy the code

2. Some projects need to use the old version of the compiler system,File-> workspace/project setting

Charles Packet Capture (HTTP/HTTPS requests for iOS) in 10 minutes

Library not found for-libstDC ++.6.0.9

The path that often appears can not find, often change, so recommend to use the latest path on the Internet

Exception handling NSSetUncaughtExceptionHandler

IOS NSSetUncaughtExceptionHandler methods coexist to local or uploaded to the local server

Audio and video processing

How to use iOS camera and photo album gracefully

# UIImagePickerController for iOS development

Use of undeclared identifier ‘kUTTypeMovie’

# iOS gets the first frame of the video

# avPlayer video repeats loop, video replay

PHAsset gets the picture and gets the video, and the PHAsset converts to Data. Packaging, etc.!!!!!!

## Photos Frame saves Photos to the system gallery

## Photos Frames are video related

The Move Forward home page has a lot of good articles

# iOS Photo Frames -PhotoKit

The Photos framework practices as well as pit album change notification listening

UICollectionView

# UICollectionView sets the header suspension effect

# Add header view to UICollectionView in iOS

# PHImageRequestOptions

PHImageManager and PHImageRequestOptions

# Short video software development: how to select video in iOS system album

# iOS development of the photo frame PhotoKit details

Get the top-level view

It can be roughly divided into the following types

  • The root view
  • tabbarviewcontroller
  • uinavigationViewcontroller
  • presentedViewController

IOS13 method of getting the root view

@implementation UIViewController (common) +(void)load {} // Get root view +(UIWindow *)keyWindow{UIWindow *foundWindow = nil; NSArray *windows = [[UIApplication sharedApplication]windows]; for (UIWindow *window in windows) { if (window.isKeyWindow) { foundWindow = window; break; } } return foundWindow; } // Get the top-level view -(UIViewController *)currentTopViewcontroller{UIWindow *theWindow = [UIViewController keyWindow]; UIViewController *TopVC = theWindow.rootViewController; while (TopVC.presentedViewController) { TopVC = TopVC.presentedViewController; } if ([TopVC isKindOfClass:[UITabBarController class]]) { UITabBarController *tabVC = (UITabBarController *)TopVC; UIViewController *selectedVC = tabVC.selectedViewController; if ([selectedVC isKindOfClass:[UINavigationController class]]) { UINavigationController *navVC = (UINavigationController  *)selectedVC; TopVC = [navVC.childViewControllers lastObject]; } else { TopVC = selectedVC; } } else if ([TopVC isKindOfClass:[UINavigationController class]]) { UINavigationController *navVC = (UINavigationController *)TopVC; TopVC = [navVC.childViewControllers lastObject]; } return TopVC; } @endCopy the code
IOS chained programming block is used as the return value
IOS file sizes convert to KB, MB, GB…
IOS –NSNotificationCenter receives a summary of the problem multiple times
# iOS Draw triangles, circles, rectangles. It looks like that

UIBezierPath use

# ios several ways to achieve color gradient
IOS gets the position of a control relative to the screen

NSInvocation

Basic use of NSInvocation

Use THE NSInvocation to send messages to objects

@ encode in the OC

IOS 3DTouch full resolution

UIBezierPath

IOS part of the rounded corner + border implementation (prevent the border is cut)

IOS development judgment horizontal and vertical screen
Ios-kvo (Key value Listening)
IOS tips for keeping the interface smooth
This section describes the APNs debugging tool Knuff

Afterword.