ios开发零散知识点总结
1:当有导航栏的时候,子视图为UIScrollView,或是继承于UIScrollView的控件如UITableView,UICollectionView等,控制器会自动调用
self.automaticallyAdjustsScrollViewInsets = YES;方法,自动为控件添加64的额外的滚动区域,若存在多个控件,则系统会自动找到第一个添加的控件,执行此方法,增加64额外的滚动区域,如果想禁止此操作,可在控制器中实现方法:self.automaticallyAdjustsScrollViewInsets = NO;或是设置UIScrollView的contentInset,tableView的contentInset,来减少滚动区域。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 1:不会自动去调整uiscrollView的contentInset属性
self.automaticallyAdjustsScrollViewInsets = NO;
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = CGRectMake(, , , );
scrollView.backgroundColor = [UIColor redColor];
[self.view addSubview:scrollView];
[scrollView addSubview:[[UISwitch alloc] init]];
}
2:在宏定义文件中的NSLog定义
#ifdef DEBUG #define DLog(...) NSLog(__VA_ARGS__) #else #define DLog(...) #endif
一些颜色的宏定义
//1:RGB颜色
#define RGB(a,b,c) [UIColor colorWithRed:(a)/255.0 green:(b)/255.0 blue:(c)/255.0 alpha:1] //2:包含设置透明度
#define RGBColor(a,b,c,d) [UIColor colorWithRed:(a)/255.0 green:(b)/255.0 blue:(c)/255.0 alpha:d] //3:随机色
#define ARC4Color RGB(arc4random_uniform(256),arc4random_uniform(256),arc4random_uniform(256))
3:pch文件的定义:在项目的Target---BuildSetting---prefixHeader---删除在桌面文件夹的路径,只保留项目的路径,再输入$(SRCROOT),如:$(SRCROOT)/网易新闻抽屉效果/Classes/Main/Utils/PrefixHeader.pch
4:通过图形上下文将color绘制成一张图片:
//提供颜色接口,返回一张图片 #import <UIKit/UIKit.h> @interface UIImage (Cqb) +(UIImage*)imageWithColor:(UIColor*)color;
@end
#import "UIImage+Cqb.h"
@implementation UIImage (Cqb)
+ (UIImage*)imageWithColor:(UIColor*)color {
//1:开启基于位图的图形上下文
CGFloat imageWidth = ;
CGFloat imageHeight = ;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageWidth, imageHeight), NO, 0.0);
//2:画一个color颜色的矩形框
[color set];
UIRectFill(CGRectMake(, , imageWidth, imageHeight));
//3:得到图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
//4:关闭图形上下文
UIGraphicsEndImageContext();
return image;
}
5:UIView计算尺寸的分类:
#import <UIKit/UIKit.h> @interface UIView (Cqb)
@property (nonatomic,assign)CGFloat X;
@property (nonatomic,assign)CGFloat Y;
@property (nonatomic,assign)CGFloat width;
@property (nonatomic,assign)CGFloat height;
@property (nonatomic,assign)CGFloat centerX;
@property (nonatomic,assign)CGFloat centerY;
@property (nonatomic,assign)CGSize size;
@end
#import "UIView+Cqb.h"
@implementation UIView (Cqb)
- (void)setX:(CGFloat)X {
CGRect frame = self.frame;
frame.origin.x = X;
self.frame = frame;
}
- (CGFloat)X {
return self.frame.origin.x;
}
- (void)setY:(CGFloat)Y {
CGRect frame = self.frame;
frame.origin.y = Y;
self.frame = frame;
}
- (CGFloat)Y {
return self.frame.origin.y;
}
- (void)setWidth:(CGFloat)width {
CGRect frame = self.frame;
frame.size.width = width;
self.frame = frame;
}
- (CGFloat)width {
return self.frame.size.width;
}
- (void)setHeight:(CGFloat)height {
CGRect frame = self.frame;
frame.size.height = height;
self.frame = frame;
}
- (CGFloat)height {
return self.frame.size.height;
}
- (void)setCenterX:(CGFloat)centerX {
CGPoint center = self.center;
center.x = centerX;
self.center = center;
}
- (CGFloat)centerX {
return self.center.x;
}
- (void)setCenterY:(CGFloat)centerY {
CGPoint center = self.center;
center.y = centerY;
self.center = center;
}
- (CGFloat)centerY {
return self.center.y;
}
- (void)setSize:(CGSize)size {
CGRect frame = self.frame;
frame.size = size;
self.frame = frame;
}
- (CGSize)size {
return self.frame.size;
}
@end
6:对自定义UIBarButtonItem的分类封装:
#import <UIKit/UIKit.h> @interface UIBarButtonItem (Extension)
+ (UIBarButtonItem *)itemWithImageName:(NSString *)imageName target:(id)target action:(SEL)action;
@end
#import "UIBarButtonItem+Extension.h" @implementation UIBarButtonItem (Extension)
+ (UIBarButtonItem *)itemWithImageName:(NSString *)imageName target:(id)target action:(SEL)action
{
UIButton *button = [[UIButton alloc] init];
[button setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal]; // 设置按钮的尺寸为背景图片的尺寸
button.size = button.currentBackgroundImage.size; // 监听按钮点击
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
return [[UIBarButtonItem alloc] initWithCustomView:button];
}
@end
6:当做真机调试的时候,要在buildSetting中配置好证书,并在info里选择开发者账号才可以
ios开发零散知识点总结的更多相关文章
- iOS学习——iOS开发小知识点集合
在iOS学习和开发过程中,经常会遇到一些很小的知识点和问题,一两句话就可以解释清楚了,这样的知识点写一篇随笔又没有必要,但是又想mark一下,以备不时之需,所以就有了本文.后面遇到一些小的知识点会不断 ...
- IOS开发,知识点小结,ios开发中经常使用的宏定义总结
IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http:// ...
- iOS开发零碎知识点
记录一些常用和不常用的iOS知识点,防止遗忘丢失.(来源为收集自己项目中用到的或者整理看到博客中的知识点),如有错误,欢迎大家批评指正:如有好的知识点,也欢迎大家联系我,添加上去.谢谢! 一.调用代码 ...
- iOS开发 小知识点
1/ iOS汉字百分号互相转换. //汉字 NSString * name = @"时间终于将我对你的爱消耗殆尽"; //汉字转为百分比 NSString * encodeStri ...
- iOS开发系列--IOS程序开发概览
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- IOS开发涉及有点概念&相关知识点
前言,IOS是基于UNIX的,用C/C+/OC直通系统底层,不想android有个jvm. 首先还是系统架构的分层架构 1.核心操作系统层 Core OS,就是内存管理.文件系统.电源管理等 2.核心 ...
- iOS开发中关于UIImage的知识点总结
UIImage是iOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有 CGImage,以及iOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: image ...
- iOS开发:开发证书知识点总结
1. Error: An App ID with identifier "*" is not avaliable. Please enter a different string. ...
- iOS开发核心语言Objective C —— 所有知识点总结
C和OC对比 OC中主要开发在什么平台上的应用程序?答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?答:OC中新增关键字大部分是以@开头 OC中新增 ...
随机推荐
- Onsctl 配置ONS服务(10G)
Onsctl Onsctl这个命令是用来管理ONS(Oracle Notification Service)是OracleClustser实现FAN Event Push模型的基础. 在RAC环境下. ...
- js04---object1
我们目前为止大多数引用类型都是Object类型的实例,Object也是ECMAScript中使用最多的一种类型(就像java.lang.Object一样,Object类型是所有它的实例的基础).Obj ...
- golang sync.Mutex(2)
package main import ( "fmt" "sync" "time" ) type User struct { Name st ...
- 在window编写好的网站往linux上发布
得知ASP.NET CORE可以跨平台,我内心很躁动,毕竟自己喜欢的,之前没有学过linux导致一开始上手linux有点困难,按照https://www.microsoft.com/net/core# ...
- 洛谷P3403跳楼机(最短路构造/同余最短路)
题目-> 解题思路: 最短路构造很神啊. 先用前两个值跑在第三个值模意义下的同余最短路(这步贪心可以证明,如果第三步长为z,那么如果n+z可以达到,n+2z同样可以达到) 最后计算与楼顶差多少个 ...
- python运算符优先级表
运算符 描述 lambda Lambda表达式 or 布尔“或” and 布尔“与” not x 布尔“非” in,not in 成员测试 is,is not 同一性测试 <,<=,> ...
- 阶段复习-.NET下托管资源与非托管资源的小记
托管资源由由程序员负责分配,在系统的二级缓存中,GC自动回收释放:而非托管资源也是由程序员负责分配,资源的释放回收也是由程序员负责,使用Dispose或者析构函数对资源进行回收,常见的非托管资源是包装 ...
- optionMenu-普通菜单使用
首先结合如下的代码来看 package com.android.settings; import android.R.integer; import android.app.Fragment; imp ...
- 为什么选择Solr?
在大型的SQL数据库上很难执行高速的查询有Solr是Apache 下的一个开源项目,使用Java基于Lucene开发的全文检索服务: 它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-ser ...
- Eclipse Class Decompiler——Java反编译插件手工配置方法
最近在eclipse上配置了java反编译插件,但是不好用,原因是我的eclipse之前有手动配置过一些类似的java反编译插件,当我将原来的插件完全卸载后重新配置才正常配置上去,自动配置java反编 ...