UI高级
pengyuan_D
有朋自远方来,不亦乐乎
展开
-
Block系列1:初识block
ViewController.m#import "ViewController.h"#import "Person.h"@interface ViewController ()@end@implementation ViewController//-------1、定义函数-----//1、函数int sum(int a,int b){ return a+b;}原创 2014-10-23 13:16:21 · 1005 阅读 · 0 评论 -
SQLite数据库简单操作
/* SQL语句 1.创建一个表 CREATE TABLE 表的名字(字段的名字 类型(text) 是否是主键 ,...) eg: CREATE TABLE Students (id integer PRIMARY KEY, name text原创 2014-10-29 11:57:06 · 678 阅读 · 0 评论 -
数组元素实例化对象的原理
- (NSArray *)myWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION{ // 创建一个可变数组 NSMutableArray *params = [NSMutableArray array]; // 1.定义一个指向个数可变的参数列表指针 va_list firstList; //原创 2014-10-29 15:24:35 · 1063 阅读 · 0 评论 -
类和元类
声明本文译自class and metaclasses.非原创类和元类十个鸡生蛋,蛋生鸡的混沌逻辑正文Objective-C是一中类基础的对象系统.每一个类都是类的实例;对象的isa指针指向它所属的类.类描述了对象的数据:分配的大小和实例变量类型以及布局形式.类也定义了对象的行为:选择器去应答实现的实例方法.类的方法列表是一簇实例方法,对象可以应答的翻译 2014-10-31 10:42:44 · 883 阅读 · 0 评论 -
二次封装CoreData
(1)创建一个Data Model文件,命名为MyModel.xcdatamodeld(2)创建Users表,添加如图的字段(3)创建NSManagedObject subclass表实体文件(4)在Users.m文件中,覆写description方法CoreDataDBHelper.h#import #import // 本地文件存储的路径#d原创 2014-10-31 16:49:42 · 1544 阅读 · 0 评论 -
注册本地通知【闹钟,备忘录】
// -------------------注册本地通知----------------- // 创建一个本地通知对象 UILocalNotification *localNotification = [[UILocalNotification alloc] init]; // 设置本地通知的时间 localNotification.fireDate = [NSDa原创 2014-11-03 20:20:45 · 893 阅读 · 0 评论 -
CocoaPods安装和使用教程
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage目录CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?场景1:利用CocoaPods,在项目中导入AFNetworking类库场景2:如何正确编译运行一个包含CocoPods类库的项目Co转载 2014-11-06 09:51:49 · 860 阅读 · 0 评论 -
iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
http://www.cnblogs.com/kenshincui/p/4186022.html#autoid-0-0-0大神的博客转载 2015-09-08 08:48:58 · 480 阅读 · 0 评论 -
iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
http://www.cnblogs.com/kenshincui/p/4186022.html#video转载 2015-09-25 19:45:50 · 544 阅读 · 0 评论 -
利用通知实现App从推送消息启动的页面跳转
写个属性用来判断消息是否为空@property (nonatomic) BOOL isLaunchedByNotification;在启动页注册接收消息的通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {原创 2015-11-19 21:00:39 · 1330 阅读 · 1 评论 -
用xib自定义UITableViewCell的注意事项——重用问题
问题的提出:有时候我们经常需要自定义tableView的cell,当cell里面的布局较为复杂时往往舍弃纯代码的方式而改用xib的方式进行自定义。当我们用纯代码的方式布局cell时,往往会在cell的initWithStyle: reuseIdentifier: 方法里面用纯代码进行布局,然后在外部VC的cellForRowAtIndexPath方法里面我们会这么写,假定自定义的cell为转载 2016-03-04 09:13:05 · 608 阅读 · 0 评论 -
iOS动画
http://www.cnblogs.com/kenshincui/p/3972100.html原创 2016-03-04 14:44:01 · 471 阅读 · 0 评论 -
ios (ASIHTTPRequest)获取下载文件大小(size)
[request setDidReceiveResponseHeadersSelector:@selector(didReceiveResponseHeaders:)]; - (void)didReceiveResponseHeaders:(ASIHTTPRequest *)request { NSLog(@"didReceiveResponseHeaders %@",[req原创 2016-03-08 15:14:42 · 587 阅读 · 0 评论 -
iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch
前提:当时看到别人写过这个类似AssistiveTouch的demo,但是有问题,第一改变不了位置、第二切换页面后无法使用、第三运行时偶尔会崩溃。然后自己就去度娘、论坛中都查了一些资料,然后结合起来写了这么一个demo。 思路:实现全局 需要在 AppDelegate.m 文件中 didFinishLaunchingWithOptions 方法里面实现 1、新建一个 继承于 UIWindow 的转载 2016-07-12 12:00:20 · 2211 阅读 · 0 评论 -
iOS 开发之 为UIButton添加类别方法加载网络图片
使用GCD线程队列实现UIButton+WebCache.h#import // 为Button添加类别方法 @interface UIButton (WebCache) - (void)xr_setButtonImageWithUrl:(NSString *)urlStr; @endUIButton+WebCache.m原创 2016-08-04 10:22:06 · 2971 阅读 · 0 评论 -
UIWebView全部区域截图保存为UIImage或者PDF
// // UIWebView+ToFile.h // UIWebViewToFile // // Created by Tracy E on 13-6-10. // Copyright (c) 2013 EsoftMobile.com. All rights reserved. // #import @interface UIWebView原创 2017-07-21 09:26:12 · 297 阅读 · 0 评论 -
Introduction to Auto Layout
https://github.com/bluhar/IOSCook/tree/master/note15Introduction to Auto Layout利用自动布局,使得应用既能在iPhone上运行,也能在iPad上很好的显示。应用默认是可以在iPad上运行的,只是屏幕周边会显示黑边。一个应用既能在iPhone上运行,又能在iPad上运行得就像为iPad开发的似的,叫做...转载 2018-10-15 16:43:54 · 181 阅读 · 0 评论 -
有歧义(AMBIGUOUS LAYOUT)的约束布局调试方法2
前几天写了一个关于调试歧义LAYOUT的办法,最近又发现了一个可能更好一点的其他办法,当确定在某个控制器(viewController)内部的约束布局有歧义时,可以用如下的方法调试。1.在控制器的@implementation 部分上面加上下面的代码@interface UIWindow (AutoLayoutDebug) + (UIWindow *)keyWindow;- (NSStr...转载 2018-10-15 16:44:37 · 472 阅读 · 0 评论 -
SQLite创建表并添加数据
- (void)viewDidLoad { [super viewDidLoad]; //创建表 [self creatTable]; //插入数据 [self insertTable];}// -----------------------创建一个表--------------------- (void)creatTable{// 1.创建一个原创 2014-10-29 11:59:55 · 3090 阅读 · 0 评论 -
同步队列的死锁问题
Main.m#import #import "Person.h"int main(int argc, const char * argv[]){ @autoreleasepool { /* //创建Serial Dispatch Queue dispatch_queue_t serialQueue = dispatch_queu原创 2014-10-25 20:43:22 · 1241 阅读 · 0 评论 -
block系列重新整理1
Main.m#import #import "Person.h"int sum(int a, int b){ return a+b;}int main(int argc, const char * argv[]){ @autoreleasepool { //------------------复习函数指针------------------原创 2014-10-25 20:23:08 · 490 阅读 · 0 评论 -
Block系列2:Block内存管理
ViewController.h#import @interface ViewController : UIViewController{ UIImage *_image; NSInteger _index;}@endViewController.m#import "ViewController.h"#import "Person.h"@interface原创 2014-10-23 13:54:22 · 866 阅读 · 0 评论 -
block系列重新整理3:循环引用
AppDelegate.m#import "AppDelegate.h"#import "Person.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{原创 2014-10-25 20:29:18 · 612 阅读 · 0 评论 -
GCD的使用
AppDelegate.m#import "AppDelegate.h"#import "UIImageView+Download.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)lau原创 2014-10-25 20:47:10 · 638 阅读 · 0 评论 -
并发任务
Main.m#import int main(int argc, const char * argv[]){ @autoreleasepool { /* //dispatch_group_async 使用 dispatch_queue_t queue = dispatch_get_global_queue(DIS原创 2014-10-25 20:50:08 · 876 阅读 · 0 评论 -
Block实战应用之button点击事件和Alert弹出框
AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] b原创 2014-10-25 20:32:27 · 1583 阅读 · 0 评论 -
多线程与GCD1:6种方法开启多线程
AppDelegate.m//// AppDelegate.m// UI12-task-01//// Created by keyzhang on 14-7-21.// Copyright (c) 2014年 keyzhang. All rights reserved.//#import "AppDelegate.h"#import "Person.h"@impl原创 2014-10-25 20:40:05 · 1033 阅读 · 0 评论 -
CALayer
AppDelegate.m- (void)dealloc{ [_window release]; [super dealloc];}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.原创 2014-10-26 15:27:56 · 650 阅读 · 0 评论 -
设置通知栏菜单
#import "RootViewController.h"#import #import @interface RootViewController ()@end@implementation RootViewController{ AVPlayer *player;}- (void)viewDidLoad{ [super viewDidLoad];原创 2014-10-26 15:42:43 · 804 阅读 · 0 评论 -
UIView动画【渐入alpha、淡出、移动frame、缩放transform、旋转transform rotation】
#import "AppDelegate.h"@implementation AppDelegate- (void)dealloc{ [_window release]; [base release]; [super dealloc];}- (BOOL)application:(UIApplication *)application didFinishLau原创 2014-10-25 20:57:57 · 1242 阅读 · 0 评论 -
UI动画之画布
AppDelegate.m Myview *view = [[Myview alloc] initWithFrame:CGRectMake(10, 50, 300, 300)]; [self.window addSubview:view];Myv原创 2014-10-26 15:21:02 · 570 阅读 · 0 评论 -
注册后台任务
AppDelegate.m- (void)applicationDidEnterBackground:(UIApplication *)application{ //注册一个后台任务,//10分钟后回调 taskID =[application beginBackgroundTaskWithExpirationHandler:^{ //先停止原创 2014-10-26 15:46:26 · 887 阅读 · 0 评论 -
CAAnimation结合绘图使用
AppDelegate.mMyView.m- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // Initialization code moveView = [[UIView alloc] initWithFrame原创 2014-10-26 15:24:39 · 544 阅读 · 0 评论 -
block系列重新整理2
Main.m#import #import "Person.h"typedef void(^Myblock)();int main(int argc, const char * argv[]){ @autoreleasepool { //block调用局部基本数据类型对象,进入到block里面,num会变成常量原创 2014-10-25 20:26:51 · 609 阅读 · 0 评论 -
AVAudioPlayer播放本地音乐AVPlayer播放网络音乐
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view from its nib. /*----------AVAudioPlayer----------*/// NSString *filePath = [[NSBundle mainB原创 2014-10-26 15:34:20 · 2473 阅读 · 0 评论 -
UIView动画私有api演示
AppDelegate.m文件中设置根控制器原创 2014-10-25 20:59:27 · 632 阅读 · 0 评论 -
CATransition 两个视图切换【push】
RootViewController.h- (IBAction)pushAction:(UIButton *)sender;RootViewController.m原创 2014-10-25 21:03:04 · 880 阅读 · 0 评论 -
Debugging Auto Layout:Ambiguous Layouts
Ambiguous Layouts 模棱两可的布局Ambiguous layouts occur when the system of constraints has two or more valid solutions. There are two main causes:当约束系统有两个或多个有效解时,会出现不规则的布局。主要有两个原因:The layout needs additi...原创 2019-09-09 17:33:39 · 263 阅读 · 0 评论