ios开发入门
ideaspress
这个作者很懒,什么都没留下…
展开
-
block的使用
声明:typedef void (^ myBlock) (int a, NSString *string);@property (nonatomic, copy) myBlock myBlock;调用:cell.myBlock = ^(2,@"hell0"){}原创 2016-01-21 15:01:30 · 268 阅读 · 0 评论 -
让自己的应用在其他应用中打开列表中显示
像百度网盘等应用,里面的文件打开时,都可以通过以下应用再打开文件。下面红色框框内的我的jpg就是我做的一个例子。因为例子没有提供Icon,所以显示的是默认icon。 下面就是这例子的主要步骤和代码。例子是一个打开jpg图片程序。1、在项目的**info.plist文件中添加: 这就是告诉系统,你能打开 jpg这个文件类型。2、打开到自己的app时,要截取到过来资源的文件路径: 在App转载 2016-01-19 16:36:01 · 1034 阅读 · 0 评论 -
如在调试的时候轻松找到程序在哪里崩溃
起因 有不少人在评论发一些崩溃信息,问我程序怎么回事,其实如果你知道了程序崩溃在哪行代码崩溃了,就很容易定位问题了。android开发看崩溃log就能看到具体哪行代码出问题,那在iOS开发怎么快速定位到具体哪行代码崩溃呢。 步骤1 在xcode添加一个通用断点就行了。方法如下: 点击项目导航断点那,如图 步骤2 点击+号: 一步步按上面图完成操作。 再运行程序 自动就断点到转载 2016-01-19 11:57:22 · 763 阅读 · 0 评论 -
推送跳转代码总结
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate; UITabBarController* TabBar = (UITabBarController*)delegate.viewController; CustomUINavigationViewController* N原创 2016-01-14 10:19:52 · 383 阅读 · 0 评论 -
导航栏透明且可下拉放大的个人中心
#define topImageViewH 208- (void) viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setTitleTextAttributes: @{NSFontAttributeName:[U原创 2016-01-12 16:07:53 · 548 阅读 · 0 评论 -
contentSize 、contentInset 和 contentOffset区分
1.contentSize 是scrollview中的一个属性,它代表scrollview中的可显示区域,假如有一个scrollview,它的frame为(0,0,320,480),而它的contentSize为(320,960).也就是说,这个scrollview整个内容的大小为(320,960),要通过上下滑动scrollview来查看(320,480)后的内容。 2.contentOffse原创 2016-01-12 15:18:25 · 372 阅读 · 0 评论 -
edgesForExtendedLayout 和automaticallyAdjustsScrollViewInsets属性
self.edgesForExtendedLayout=UIRectEdgeAll;UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域,即表示tableView可延伸到 navigationBar 下面,从导航栏的顶部边缘(0,0)开始,如图: 默认是self.edgesForExtendedLayou原创 2016-01-12 14:36:17 · 1943 阅读 · 0 评论 -
通过ViewController的关键流程来理解流程建模
在最近解决某个问题的时候,发现在ViewDidDisappear中去获取self.navigationController为空。猛然间意识到,原来在VC的生命周期中存在一些细节问题需要注意。而且,最近一段时间,对基于流程(生命周期是特殊的流程)建模的编程思想也开始有些反思。所以就总结了一下VC生命周期的一些问题。先说点比较抽象的东西,关于流程建模的。对于同一个对象而言,往往在不同的业务场景中其有不一转载 2015-12-30 15:29:37 · 407 阅读 · 0 评论 -
iOS 友盟 自动更新SDK集成指南
OS自动更新SDK集成指南 :http://dev.umeng.com/auto-update/ios/quick-start 1. 集成友盟iOS统计分析SDK 友盟自动更新功能在统计分析SDK中实现,请点击下面链接,先集成统计分析SDK 统计分析iOS SDK集成指南 2. 使用按渠道自动更新检测 在网站上分渠道提交app的版本号,更新日志及openURL后,您只需添加一行代码来完成自转载 2015-12-25 09:39:45 · 1337 阅读 · 0 评论 -
导航栏设置为透明
给导航栏加一个透明的背景:[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"tm"] forBarMetrics:UIBarMetricsCompact];并加代码:self.navigationController.navigationBar.layer.masksToBounds =原创 2015-11-27 15:05:14 · 1259 阅读 · 0 评论 -
xib或者storyboard中给scrollview添加约束
参照网址:http://www.cocoachina.com/ios/20150104/10810.html原创 2015-11-27 14:31:15 · 1278 阅读 · 0 评论 -
启动图后面加入别的启动图片
在Tabbar中加入方法-(void)initAdvView{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *filePath = [[paths objectAtIndex:0] stringByAppendingP转载 2015-10-29 18:18:18 · 551 阅读 · 0 评论 -
AFNetWorking设置请求超时时间
// 设置超时时间 [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 10.f; [manager.requestSerializer didChangeValueForKey:@"timeoutIn原创 2015-10-16 16:24:30 · 1459 阅读 · 0 评论 -
UIButton的UIEdgeInsets功能:设置button上的文字和图片的位置
UIEdgeInsets的介绍:typedef struct UIEdgeInsets { CGFloat top, left, bottom, right; //参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央 } UIEdgeInsets; 在UIButton中有三个对EdgeInsets的设置:ContentEdgeI转载 2015-10-14 14:17:34 · 474 阅读 · 0 评论 -
TextField 知识点(三)
修改textField的placeholder的字体颜色、大小: (KVC的方式)textField.placeholder = @"请输入密码"; [textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; [textField setValue:[UIFont boldSystem原创 2015-10-08 16:09:50 · 447 阅读 · 0 评论 -
xib中设置TableView的HeaderView
xib中设置TableView的HeaderView的步骤很简单,但是如果不了解的话,就得繁琐的写代码了,现将步骤即图片附上。首先在xib中拖一个UIVew进去,注意先拖入到与Controller的View并列处,如图: 然后将,这个View拖到File’s Ower 的那一并列层中,(按照箭头所指的方向拖拽即可)如图: 完成后图为: 接下来的一步不要忘记:把刚刚的UIView的Simulat原创 2015-09-29 11:49:15 · 10232 阅读 · 2 评论 -
kvo使用方法简述
KVO:当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 使用步骤大体概括为3步: 1. 注册,指定被观察者的属性 2. 实现回调方法 3. 移除观察下面附上一段简单代码来明确下kvo的使用: 首先说明下大体代码含义:声明一可变字典,开始时给字典中键值为hello的做一个value的赋值,并通过kvo对此原创 2015-09-23 16:23:43 · 429 阅读 · 0 评论 -
iOS系统架构
iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。下面是IOS系统结构图。 一、Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。转载 2015-09-23 19:33:54 · 597 阅读 · 0 评论 -
ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics、Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环境下编译器不会自动管理CF对象的内存,所以当我们创建了一个CF对象以后就需要我们使用CFRelease将其手动释放,那么CF和OC相互转化的时候该如何管理内存呢?答案就是我们在需要时可以使用__brid转载 2015-09-08 15:43:00 · 362 阅读 · 0 评论 -
iOS隐藏导航条1px的底部横线
方法一:(这是唯一一个隐藏这条线的官方用法,但是有一个缺陷-删除了translucency(半透明))UINavigationBar *navigationBar = self.navigationController.navigationBar;// white.png图片自己下载个纯白色的色块,或者自己ps做一个[navigationBar setBackgroundImage:[UIIma转载 2015-09-07 14:18:05 · 394 阅读 · 0 评论 -
正则表达式
赋上正则表达式的代表含义:转载 2015-09-01 11:19:17 · 612 阅读 · 0 评论 -
tabbar的那些事
1.防止系统渲染(图片和文字) [item setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateNormal]; [item setTitleTextAttributes:@{NSForegroundColorAttributeName:[U原创 2015-08-27 15:46:55 · 384 阅读 · 0 评论 -
打包过程整理
打包步骤总结: 1.target Team中选择公司网址,如果可以选择的网址不正确或者没有的话,就选None 2.然后在Build Setting中的Code Signing 中选择生产证书以及iphone Distribution …… (三个地方都要改为这个) 3.运行环境选择 iOS Sevice 或者真机 4. Product中选择Scheme,再选Edit Scheme,选择Rel原创 2015-08-22 11:22:08 · 563 阅读 · 0 评论 -
tabbar下方的红色提示图标
想在得到推送,或者一些情况下,tabbar下方出现红色图标时,可在对应的控制器中写入代码:[self.tabBarItem setBadgeValue:@"1"];原创 2015-08-21 19:52:37 · 439 阅读 · 0 评论 -
button 添加图片防止被渲染
有时你会发现给按钮添加的图片,不管你添加的是神马颜色的图片他都只显示白色,这时因为系统将其渲染了,这时只需要添加以下代码即可实现了: [_delegateButton setTitle:@" 删除" forState:UIControlStateNormal]; UIImage *loginImg = [UIImage imageNamed:@"cardelet"]; loginIm原创 2015-08-19 11:57:51 · 1483 阅读 · 0 评论 -
向服务器上传图片和一些数据信息
有时候,项目中需要向服务器不单单是上传图片或者数据信息,要想将图片和一些数据信息一起上传到服务器,用AFNetWorking就可以实现://向服务器上传数据-(void)importDate:(UIButton *)button { if (_footerView.reason.text.length != 0) { [self showHudInView:self.vie原创 2015-08-17 20:13:16 · 425 阅读 · 0 评论 -
xib中设置控件的边框以及圆角
选中要设置的Button或者Label控件。选中图种第三个图标 然后, 第一个是设置圆角,第二个是设置边框宽度,第三个是设置边框的颜色但是有一点需要注意,就是如果对象是ImageView时,即使这样设置了有时也发现仍然不行,这时就需要在代码中添加一句:image.layer.masksToBounds = YES;即:允许被切割,就可以实现了图片的切割,类似于以上:再付图一张:原创 2015-08-07 11:59:44 · 2826 阅读 · 0 评论 -
获取到Applegate的方法
做项目中,有时会需要获取到Applegate,比如做代理的被动方时,也会用到,获取的方法为: AppDelegate *applegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];原创 2015-08-06 14:40:15 · 554 阅读 · 0 评论 -
UIView中常见的方法总结
// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view; // 将像素point从view中转换到当前视图中,返回在当前视图中的像素值 - (CGPoint)convertPoint:(CGPoint)point fromVie转载 2015-07-22 17:57:36 · 455 阅读 · 0 评论 -
ios 自定义cell中有textField,点击textField时,防止键盘挡住textField
自定义cell中的代码: .h中设置一个代理@protocol moveDelegate <NSObject>-(void)CellWith:(NSIndexPath * )index;//将点击的那个textField所在的cell,在tableView中的位置传到控制器界面@end@interface QuotedListTableViewCell : UITableViewCell<UIT原创 2015-07-22 17:31:06 · 2349 阅读 · 0 评论 -
获取键盘的高度
- (void)viewDidLoad{ [super viewDidLoad]; //增加监听,当键盘出现或改变时收出消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboar原创 2015-07-22 14:21:13 · 713 阅读 · 0 评论 -
UINavigationController小知识点(一)
导航栏上的图标,如果不能被点击,则设置方法:UIBarButtonItem *logo = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"ddfh"] style:UIBarButtonItemStyleDone target:nil action:nil]; self.navigationItem.leftBarBu原创 2015-07-17 16:25:18 · 350 阅读 · 0 评论 -
iOS 设置程序的图片 以及启动画面
设置程序的图片: 点击target ——>App Icons and Launch Images中的App Icons Source 选择AppIcon 然后点击右边的箭头,就进入到图片界面了,这样程序的图片就可以从这里设置了,选中图片组,扔进这里面,Xcode会默认的区识别型号个给添加到空格里面,注意每个空格都要添加,不然会报错。根据自己的情况在右边的地方进行修改,如图是当时项目中的情况勾选:原创 2015-07-16 18:23:28 · 1097 阅读 · 0 评论 -
IOS中UIWebView和JavaScript交互
当程序中使用到UIWebView控件的时候,难免会遇到需要与页面进行交互的情况。这种情况在android平台下比较容易处理,android平台下WebView控件的addJavascriptInterface()方法可以很轻松的完成交互,而IOS上就稍复杂一些。 页面与客户端的交互是通过JS来完成的,通常情况下与JS的交互可以分为两种:客户端传递给JS一些数据和JS向客户端请求一些本地操作。下面分转载 2015-07-13 17:25:36 · 402 阅读 · 0 评论 -
Button添加图片和文字
ios layout机制相关方法(CGSize)sizeThatFits:(CGSize)size(void)sizeToFit ——————-(void)layoutSubviews(void)layoutIfNeeded(void)setNeedsLayout ——————–(void)setNeedsDisplay(void)drawRectlayoutSubviews在以原创 2015-07-13 16:01:36 · 1680 阅读 · 0 评论 -
label在cell中 自适应
先在初始化方法中将之创建,并设置numberOfLines = 0- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];原创 2015-07-08 16:01:02 · 601 阅读 · 0 评论 -
同一个界面中 向封装的其中一块View中传值问题
在当在一个界面中,向自己封装的一块view中传值:这种情况属于既不属于正向传值又不属于反向传值。 可以按正向传值的思路来做,但是这样实现时会发现,传过去的值为空,打印后发现,先创建的封装的那块view,然后才传值的,而封装的那块view在创建的界面是需要这个值的,而这个值在创建时并没有传过来。所以正确的做法应该是在创建的时候就应该将值传过来。 例如: 某个控制器的view是tableView,原创 2015-07-06 18:33:19 · 458 阅读 · 0 评论 -
提交表单 用AFNetWorking
直接上代码:这里//向服务器上传数据-(void)importDate:(UIButton *)button { NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:_count,@"count",_productId,@"Id", nil]; AFHTTPRequestOperationManager* mg原创 2015-07-06 18:13:19 · 6860 阅读 · 0 评论 -
遍历方法将数组中的内容放到另外一个数组
今天项目中需要通过遍历一个数组将数组中的内容保存到另一个数组中,打印发现,想要保存入的那个数组,每次都只保存了最后一个内容,反复找原因,最后发现原因是每次添加时都将数组重新初始化了,不是原来那个数组了。 附上代码for (NSDictionary *dic in _array) {//请求的数据中的一个数组数据保存到_array中,数组中存的全部是字典,所以用字典来遍历 NSString *i原创 2015-07-02 17:26:42 · 10077 阅读 · 0 评论 -
仿QQ控件右上角按钮
首先封装一个view .h文件#import <UIKit/UIKit.h>@interface menuView : UIView@property (nonatomic, strong)UIView *view;@end.m文件#import "menuView.h"@implementation menuView- (id)initWithFrame:(CGRect)frame{原创 2015-07-02 15:31:08 · 811 阅读 · 0 评论