320 lines
11 KiB
Objective-C
Executable File
320 lines
11 KiB
Objective-C
Executable File
//
|
|
// ControlCreator.m
|
|
// 君分时代
|
|
//
|
|
// Created by 贠小飞 on 2018/4/10.
|
|
// Copyright © 2018年 贠小飞. All rights reserved.
|
|
//
|
|
|
|
#import "ControlCreator.h"
|
|
|
|
@implementation ControlCreator
|
|
|
|
#pragma mark create control
|
|
+ (UIView *)createView:(UIView *)parent rect:(CGRect)rect backguoundColor:(UIColor *)backguoundColor {
|
|
UIView *view = [[UIView alloc] initWithFrame:rect];
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UIDatePicker *)createDatePickerView:(UIView *)parent rect:(CGRect)rect backguoundColor:(UIColor *)backguoundColor {
|
|
UIDatePicker *view = [[UIDatePicker alloc] init];
|
|
rect.size.height = view.frame.size.height;
|
|
view.frame = rect;
|
|
view.backgroundColor = [UIColor clearColor];
|
|
view.datePickerMode = UIDatePickerModeDate;
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UIPickerView *)createPickerView:(UIView *)parent rect:(CGRect)rect dataSource:(id)dataSource delegate:(id)delegate backguoundColor:(UIColor *)backguoundColor {
|
|
UIPickerView *view = [[UIPickerView alloc] init];
|
|
rect.size.height = view.frame.size.height;
|
|
view.frame = rect;
|
|
view.backgroundColor = [UIColor clearColor];
|
|
view.showsSelectionIndicator = YES;
|
|
view.dataSource = dataSource;
|
|
view.delegate = delegate;
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UITableView *)createTableView:(UIView *)parent rect:(CGRect)rect dataSource:(id)dataSource delegate:(id)delegate backguoundColor:(UIColor *)backguoundColor {
|
|
UITableView *view = [[UITableView alloc] initWithFrame:rect];
|
|
view.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
view.showsHorizontalScrollIndicator = NO;
|
|
view.showsVerticalScrollIndicator = NO;
|
|
view.dataSource = dataSource;
|
|
view.delegate = delegate;
|
|
view.bounces = YES;
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UIScrollView *)createScrollView:(UIView *)parent rect:(CGRect)rect delegate:(id)delegate backguoundColor:(UIColor *)backguoundColor {
|
|
UIScrollView *view = [[UIScrollView alloc] initWithFrame:rect];
|
|
view.showsHorizontalScrollIndicator = NO;
|
|
view.showsVerticalScrollIndicator = NO;
|
|
view.delegate = delegate;
|
|
view.bounces = YES;
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UIImageView *)createImageView:(UIView *)parent rect:(CGRect)rect imageName:(NSString *)imageName backguoundColor:(UIColor *)backguoundColor {
|
|
UIImageView *view = [[UIImageView alloc] initWithFrame:rect];
|
|
view.contentMode = UIViewContentModeScaleAspectFit;
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (imageName && ![imageName isEqualToString:@""]) {
|
|
UIImage *image = [UIImage imageNamed:imageName];
|
|
if (image) {
|
|
view.image = image;
|
|
}
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (UILabel *)createLabel:(UIView *)parent rect:(CGRect)rect text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor align:(NSTextAlignment)align lines:(NSInteger)lines {
|
|
UILabel *label = [[UILabel alloc] initWithFrame:rect];
|
|
if (parent) {
|
|
[parent addSubview:label];
|
|
}
|
|
if (text) {
|
|
label.text = text;
|
|
}
|
|
if (font) {
|
|
label.font = font;
|
|
}
|
|
if (color) {
|
|
label.textColor = color;
|
|
}
|
|
if (backguoundColor) {
|
|
label.backgroundColor = backguoundColor;
|
|
}
|
|
label.textAlignment = align;
|
|
label.numberOfLines = lines;
|
|
label.lineBreakMode = NSLineBreakByTruncatingTail;
|
|
// label.adjustsFontSizeToFitWidth = YES;
|
|
|
|
return label;
|
|
}
|
|
+ (EdgeInsetsLabel *)createEdgeInsetsLabel:(UIView *)parent rect:(CGRect)rect text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor align:(NSTextAlignment)align lines:(NSInteger)lines
|
|
{
|
|
EdgeInsetsLabel *label = [[EdgeInsetsLabel alloc] initWithFrame:rect];
|
|
if (parent) {
|
|
[parent addSubview:label];
|
|
}
|
|
if (text) {
|
|
label.text = text;
|
|
}
|
|
if (font) {
|
|
label.font = font;
|
|
}
|
|
if (color) {
|
|
label.textColor = color;
|
|
}
|
|
if (backguoundColor) {
|
|
label.backgroundColor = backguoundColor;
|
|
}
|
|
label.textAlignment = align;
|
|
label.numberOfLines = lines;
|
|
label.lineBreakMode = NSLineBreakByTruncatingTail;
|
|
label.adjustsFontSizeToFitWidth = YES;
|
|
|
|
return label;
|
|
}
|
|
+ (UIButton *)createButton:(UIView *)parent rect:(CGRect)rect text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor imageName:(NSString *)imageName target:(id)target action:(SEL)action {
|
|
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
if (parent) {
|
|
[parent addSubview:button];
|
|
}
|
|
button.frame = rect;
|
|
if (text) {
|
|
[button setTitle:text forState:UIControlStateNormal];
|
|
}
|
|
if (font) {
|
|
button.titleLabel.font = font;
|
|
}
|
|
if (color) {
|
|
[button setTitleColor:color forState:UIControlStateNormal];
|
|
}
|
|
if (backguoundColor) {
|
|
[button setBackgroundColor:backguoundColor];
|
|
}
|
|
if (imageName && ![imageName isEqualToString:@""]) {
|
|
UIImage *image = [UIImage imageNamed:imageName];
|
|
if (image) {
|
|
[button setImage:image forState:UIControlStateNormal];
|
|
}
|
|
}
|
|
if (target && [target respondsToSelector:action]) {
|
|
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
button.titleLabel.adjustsFontSizeToFitWidth = YES;
|
|
// button.imageView.contentMode = UIViewContentModeScaleAspectFit;
|
|
// button.adjustsImageWhenHighlighted = NO;
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (UITextField *)createTextField:(UIView *)parent rect:(CGRect)rect placeholder:(NSString *)placeholder placeholderColor:(UIColor *)placeholderColor text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor {
|
|
UITextField *inputField = [[UITextField alloc] initWithFrame:rect];
|
|
if (parent) {
|
|
[parent addSubview:inputField];
|
|
}
|
|
if (placeholder) {
|
|
NSMutableAttributedString *notice = [[NSMutableAttributedString alloc] initWithString:placeholder];
|
|
if (placeholderColor) {
|
|
[notice addAttribute:NSForegroundColorAttributeName value:placeholderColor range:NSMakeRange(0, placeholder.length)];
|
|
}
|
|
inputField.attributedPlaceholder = notice;
|
|
}
|
|
if (text) {
|
|
inputField.text = text;
|
|
}
|
|
if (font) {
|
|
inputField.font = font;
|
|
}
|
|
if (color) {
|
|
inputField.textColor = color;
|
|
}
|
|
if (backguoundColor) {
|
|
inputField.backgroundColor = backguoundColor;
|
|
}
|
|
inputField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
|
|
inputField.returnKeyType = UIReturnKeyDone;
|
|
|
|
return inputField;
|
|
}
|
|
|
|
+ (UITextField *)createNumberField:(UIView *)parent rect:(CGRect)rect placeholder:(NSString *)placeholder placeholderColor:(UIColor *)placeholderColor text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor {
|
|
UITextField *inputField = [ControlCreator createTextField:parent rect:rect placeholder:placeholder placeholderColor:placeholderColor text:text font:font color:color backguoundColor:backguoundColor];
|
|
inputField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
|
|
|
|
return inputField;
|
|
}
|
|
|
|
+ (UITextField *)createSecureField:(UIView *)parent rect:(CGRect)rect placeholder:(NSString *)placeholder placeholderColor:(UIColor *)placeholderColor text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor {
|
|
UITextField *inputField = [ControlCreator createTextField:parent rect:rect placeholder:placeholder placeholderColor:placeholderColor text:text font:font color:color backguoundColor:backguoundColor];
|
|
inputField.secureTextEntry = YES;
|
|
|
|
return inputField;
|
|
}
|
|
|
|
+ (UITextView *)createTextView:(UIView *)parent rect:(CGRect)rect text:(NSString *)text font:(UIFont *)font color:(UIColor *)color backguoundColor:(UIColor *)backguoundColor {
|
|
UITextView *view = [[UITextView alloc] initWithFrame:rect];
|
|
if (parent) {
|
|
[parent addSubview:view];
|
|
}
|
|
if (text) {
|
|
view.text = text;
|
|
}
|
|
if (font) {
|
|
view.font = font;
|
|
}
|
|
if (color) {
|
|
view.textColor = color;
|
|
}
|
|
if (backguoundColor) {
|
|
view.backgroundColor = backguoundColor;
|
|
}
|
|
|
|
return view;
|
|
}
|
|
|
|
#pragma mark calcu text size
|
|
+ (CGSize)calcuTextSize:(NSString *)text containSize:(CGSize)containSize font:(UIFont *)font lineBreakMode:(NSLineBreakMode)lineBreakMode {
|
|
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
|
|
[style setLineBreakMode:lineBreakMode];
|
|
|
|
CGSize size = CGSizeZero;
|
|
if (CGSizeEqualToSize(containSize, CGSizeZero)) {
|
|
size = [text sizeWithAttributes:@{NSFontAttributeName: font}];
|
|
} else {
|
|
CGRect rect = [text boundingRectWithSize:containSize
|
|
options:NSStringDrawingUsesLineFragmentOrigin
|
|
attributes:@{NSFontAttributeName: font, NSParagraphStyleAttributeName: style}
|
|
context:nil];
|
|
size = rect.size;
|
|
}
|
|
|
|
return size;
|
|
}
|
|
|
|
+ (CGSize)calcuAttributeTextSize:(NSMutableAttributedString *)attributeText containSize:(CGSize)containSize lineBreakMode:(NSLineBreakMode)lineBreakMode {
|
|
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
|
|
[style setLineBreakMode:lineBreakMode];
|
|
|
|
CGSize size = CGSizeZero;
|
|
if (CGSizeEqualToSize(containSize, CGSizeZero)) {
|
|
CGRect rect = [attributeText boundingRectWithSize:CGSizeMake(INT32_MAX, INT32_MAX)
|
|
options:NSStringDrawingUsesLineFragmentOrigin
|
|
context:nil];
|
|
size = rect.size;
|
|
} else {
|
|
CGRect rect = [attributeText boundingRectWithSize:containSize
|
|
options:NSStringDrawingUsesLineFragmentOrigin
|
|
context:nil];
|
|
size = rect.size;
|
|
}
|
|
|
|
return size;
|
|
}
|
|
|
|
#pragma mark create color use hex
|
|
+ (UIColor *)colorWithHex:(long)hexColor {
|
|
CGFloat red = ((CGFloat)((hexColor & 0xFF0000) >> 16)) / 255.0f;
|
|
CGFloat green = ((CGFloat)((hexColor & 0xFF00) >> 8)) / 255.0f;
|
|
CGFloat blue = ((CGFloat)(hexColor & 0xFF)) / 255.0f;
|
|
return [UIColor colorWithRed:red green:green blue:blue alpha:1.0f];
|
|
}
|
|
|
|
+ (UIColor *)colorWithHex:(long)hexColor alpha:(CGFloat)alpha {
|
|
CGFloat red = ((CGFloat)((hexColor & 0xFF0000) >> 16)) / 255.0f;
|
|
CGFloat green = ((CGFloat)((hexColor & 0xFF00) >> 8)) / 255.0f;
|
|
CGFloat blue = ((CGFloat)(hexColor & 0xFF)) / 255.0f;
|
|
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
|
|
}
|
|
|
|
|
|
|
|
|
|
@end
|