iOS

Enum表示TableView的数据源

// // SettingTableViewController.swift import UIKit protocol SettingViewControllerDelegate: class { func controllerDidChangeDateMode(controller: SettingTableViewController) func controllerDidChangeTemperatureMode(controller: SettingTableViewController) } class SettingTableViewController: UITableViewController { weak var changeDelegate: SettingViewControllerDelegate? override func viewDidLoad() { super.viewDidLoad() tableView.rowHeight = 44 } } extension SettingTableViewController { private

  • 发抖喵小咪
    发抖喵小咪
2 min read
iOS

自定义搜索框

封装的几种方法分类:UITextField/UISearchBar自定义控件工具类从上到下优先度依次降低.用哪种方式封装通过分类,如果通过分类[UITextField searchBar]方法名跟类名明显对不上号;[UISearchBar searchBar]返回结果是一个UITextField,跟类名也对不上.所以我们需要自定控件,自定义控件就需要继承UITextField.代码== CTSearchBar.h 文件==#import <UIKit/UIKit.h> @interface CTSearchBar : UITextField + (instancetype)searchBar; @end CTSearchBar.m#import

  • 发抖喵小咪
    发抖喵小咪
1 min read
iOS

用分类自定义UIBarButtonItem

原因:项目中多次用到自定义UIBarButtonItem,所以需要抽取出来代码该干什么就干什么,因为这段代码是自定义。UIBarButtonItem,所以应该由UIBarButtonItem做。所以创建一个分类。命名习惯,代码规范。要用[UIBarButtonItem itemWith...]这种形式。自定义UIBarButtonItemUIBarButtonItem+Category.h文件#import <UIKit/UIKit.h> @interface UIBarButtonItem (Category) + (NSArray *)itemWithTarget:(id)target action:(SEL)action image:

  • 发抖喵小咪
    发抖喵小咪
1 min read
iOS

统一设置UINavigationController左上角图标

方法一通过工厂方法,然后在需要左上角显示图标的ViewController的viewDidLoad方法调用。代码如下:Factory.h文件#import <Foundation/Foundation.h> @interface Factory : NSObject + (void)addBackButton:(UIViewController *)viewController; @end ``` ==Factory.m文件== ``` #import "Factory.h" @implementation Factory + (void)addBackButton:(UIViewController *)viewController{ UIButton *button = [UIButton

  • 发抖喵小咪
    发抖喵小咪
2 min read
iOS

iOS界面跳转隐藏tabBar

一.IOS隐藏tabBar的方法:self.tabBarController.tabBar.hidden = YES; 但是我们跳转隐藏tabBar需要的不是这段代码.二.push跳转隐藏tabBar如果在push跳转时需要隐藏tabBar,设置self.hidesBottomBarWhenPushed=YES;并在push后设置self.hidesBottomBarWhenPushed=NO;这样back回来的时候,tabBar会恢复正常显示。代码如下: NextViewController *next=[[NextViewController alloc]init]; next. hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:next animated:YES]

  • 发抖喵小咪
    发抖喵小咪
1 min read
iOS

通过runtime让属性在category上飞

现在面临的场景在做项目过程中难免会创建很多ViewModel,这些ViewModel难免有些共同的方法跟属性,这些共同的方法和属性可以单独提取出来,这就用到category.我现在的具体场景是:每个ViewModel都需要请求数据,当ViewController从当前界面切换到另一个画面时,暂停本页面的网络请求.源码NSObject+ViewModel.h文件@interface NSObject (ViewModel) @property (nonatomic) NSURLSessionDataTask *dataTask; - (void)cancelTask; //取消任务 - (void)suspendTask; //暂停任务 - (void)resumeTask; //继续任务 @end NSObject+ViewModel.

  • 发抖喵小咪
    发抖喵小咪
2 min read
iOS

为Xib中的控件设置圆角

今天同学问了我一个问题,Google了一下,以后会用到,所以在这记录一下.有时候,项目需要引用XIB,但是有些UI属性在面板不好设置,例如设置圆角.那么我们可以采取一种思路,通过拖线连接到.m文件,然后开始进行代码属性的修改,但是切记.设置圆角的方法,不能在ViewDidLoad里边重写,这样会导致无效,我们需要在drawRect进行设置,然后再进行调用即可.代码如下:- (void)drawRect:(CGRect)rect{ [super drawRect:rect]; self.imgView.layer.cornerRadius = 20; self.

  • 发抖喵小咪
    发抖喵小咪
1 min read