mvm_core_ui/MVMCoreUI/BaseControllers/StackableViewController.h
Pfeil, Scott Robert 98fa47aaae Migration
2019-01-10 14:23:14 -05:00

47 lines
2.8 KiB
Objective-C

//
// StackableViewController.h
// myverizon
//
// Created by Scott Pfeil on 3/26/14.
// Copyright (c) 2014 Verizon Wireless. All rights reserved.
//
// This view controller is here to enable faster development of standard form screens. Put all ui objects that you want to be displayed in a top down order in an array and then call the generateFormWithUIArray. Any type can go in it.
#import <MVMCoreUI/ProgrammaticScrollViewController.h>
@interface StackableViewController : ProgrammaticScrollViewController
// An array of ui elements that will be spaced out on the screen top to bottom from index 0 to formUIArray.count.
@property (nullable, strong, nonatomic) NSArray *formUIArray;
// Generates the form view with the passed in form ui array.
- (void)generateFormViewWithUIArray:(nullable NSArray <UIView *>*)formUIArray;
- (void)generateFormView:(nullable UIView *)view withUIArrayForConstrainingViews:(nullable NSArray <UIView *>*)formUIArray;
// Returns the spacing that should surround the passed in item. Subclass this to change spacing.
- (UIEdgeInsets)spaceAroundUIObject:(nullable id)object;
// When using constraining views in the form array, resets the space that should surround each element.
- (void)resetSpaceForFormArrayWithConstrainingViews;
// Removes all the subviews in the form ui array.
- (void)removeUIViews;
// Removes all the subviews in the passed in array.
+ (void)removeUIViews:(nullable NSArray <UIView *>*)views;
// Returns the standard space around ui objects.
+ (UIEdgeInsets)standardSpaceAroundUIObject;
// Consolidates generateFormViewWithUIArray and spaceArroundUIObject into one class object so other view controllers can take advantage of these functions.
+ (void)populateView:(nonnull UIView *)view withUIArray:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
+ (void)populateViewHorizontally:(nonnull UIView *)view withUIArray:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
+ (void)populateView:(nonnull UIView *)view withUIArrayForConstrainingViews:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
// Does the actual laying out. The formuiarray views should already be added to the view.
+ (void)autoLayoutView:(nonnull UIView *)view withUIArray:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
+ (void)autoLayoutViewHorizontally:(nonnull UIView *)view withUIArray:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
+ (void)autoLayoutViewWithConstrainingViewsWithUIArray:(nonnull NSArray <UIView *>*)formUIArray withSpacingBlock:(nonnull UIEdgeInsets (^) (id _Nullable object))spacingBlock;
@end