2014年1月17日

iOS设计模式之自己设计与实现委托与协议

摘要: 协议是一组方法的集合。 委托依赖协议来实现。一般为委托来提供服务的协议我们的命名规则都是 类名Delegate.其中类名实际隐含了表示了delegating的名字。也就是需要委托者帮组的类。比如UITableViewDelegate协议。我们往往使用系统给我们写好的委托和协议。其中自己手写实现一个委托并不困难。比如一个控制器A需要其他控制器的帮助来实现对控制器A上的视图来配置。那么需要为控制器A代码实现如下。#import 1 @protocol ADelegate;@interface A : UIViewController2 @propety (weak, nonatomic) id d 阅读全文

posted @ 2014-01-17 15:57 mix1009 阅读(303) 评论(0) 推荐(0)

2014年1月8日

UIView 两个视图控制器管理的根view为父子视图

摘要: 考虑这样的一个场景.视图控制器vc1管理一个button.button 按下后弹出一个下拉框【uitableview】。下拉框当然可以用vc1管理。但是,因为下拉框点击后还要做其他操作,而且其他操作并不影响vc1管理的视图。这个时候有必要在设计一个vc2来管理这个下拉框。让业务逻辑在不同的视图控制器来处理。那么为了让下拉框在vc1管理的视图上显示。自然而然可以考虑[vc1.view addSubView vc2.view];但是这种实现会有一个很容易忽视的bug代码实现如下@interface HomeViewController ()@property (strong, nonatomic) 阅读全文

posted @ 2014-01-08 11:21 mix1009 阅读(267) 评论(0) 推荐(0)

2014年1月7日

UITableViewCell unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell

摘要: iOS6之后,按照之前的官方文档会报这样的bugTerminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable todequeuea cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'- (UITableViewCell *)tableView:(U 阅读全文

posted @ 2014-01-07 18:35 mix1009 阅读(6181) 评论(0) 推荐(1)

UISegmentControl的弊端---用UIButton代替

摘要: 笔者在使用UISegmentControl时,发现这个控件有些许bug.最突出的问题是设置背景图。如果不涉及到背景图,勉强够用。一旦涉及到设置背景图。基本就无法正常显示,只能看到一片模糊的蓝色[tintColor的颜色]如果当我们的segment个数不太多,我们可以多个UIButton模拟构造它。注意初始化的时候设置UIButton的风格是custom而不是system我们需要UI 帮我们设置4张图。每个UIButton需要两张图片。一张是normal状态,一张是selected状态代码如下 self.manButton = [UIButton buttonWithType:UIButton. 阅读全文

posted @ 2014-01-07 14:44 mix1009 阅读(263) 评论(0) 推荐(0)

2014年1月4日

UIButton 设置背景图和标题的陷阱

摘要: 注意两点就可以了。1.初始化使用UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom] 而不是UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]后者之意思就是为你设计号了内容,居然设计好了内容,再想改变内容【比如图】,是不可能的。2.设置图使用 [button setImage:OKImage forState:UIControlStateNormal] 而不是使用[button.imageView setImage:OKImage forStat 阅读全文

posted @ 2014-01-04 23:20 mix1009 阅读(305) 评论(0) 推荐(0)

UITextField 保存输入帐号或者密码的时机

摘要: 虽然保存输入帐号或者密码并不是UITextField的责任,但是实际上要保存的原始信息是UITextField的text。那么我们就有一个问题,何时保存这个信息了。一般情况下提出这种需求是我们在登录成功后保存某一个输入的字符串信息。如果不成功,也没有保存的必要。保存的目的是为了用户下次不用重新输入。往往是确定登录按钮的Target Action的Action事件中是保存的最好时机。而不是在UITextFieldDelegate的两个方法中- (void)textFieldDidEndEditing:(UITextField *)textField // 当插入符离开输入框后调用-(BOOL)t 阅读全文

posted @ 2014-01-04 22:41 mix1009 阅读(442) 评论(0) 推荐(0)

UITextField 调用的键盘挡住了它自己

摘要: 在使用UITextField过程中,常常遇到一些可以相似的可以复用的场景,整理如下。1.键盘挡住了输入框。解决方案:在两个委托方法中,将视图上移或者下移,这样-(void)textFieldDidBeginEditing:(UITextField *)textField - (void)textFieldDidEndEditing:(UITextField *)textField实现view的向上和向下移动。当插入符到textField时,调用了textFieldDidBeginEditing方法。此时将控制器的view向上移动一定距离。纵坐标减少当插入符离开textField时,调用text 阅读全文

posted @ 2014-01-04 22:07 mix1009 阅读(329) 评论(0) 推荐(0)

2013年12月2日

0 制作OpenSuse启动盘

摘要: 制作启动盘是安装OpenSuse第一步。当然有许多其他方法制作安装媒介,但是个人感觉制作启动盘是最简单快速的,在这个讲究效率的时代,怎么快怎么来吧。 你需要的硬件材料仅仅是一个8G的U盘,支持USB启动的主板【大多数都支持,只要你不是太老太老的机器】。软件是windows系统和ulstra ISO.这种制作思维是 windows的,但是只要能用,应该放弃门第之见。 第一步:下载DVD版本的Opensuse。 http://software.opensuse.org/123/zh_CN,这里要选择32位和64位。按照CPU的位数选择。 第二步:windows下的Ulstra ISO,... 阅读全文

posted @ 2013-12-02 13:27 mix1009 阅读(695) 评论(0) 推荐(0)

导航