ios开发相对布局时同级View左右相接如何设置
:IOS    :kukei    :2016-04-23 20:09:54
:评论(0)

我最初的需求是在scrollview中并排放置两个view(view1和view2),大小和屏幕大小一致,用scrollview的翻页功能来实现滑动切换页面的功能;

然而在storyboard中设置两个view的左右相对距离为0时,发现找不到同级的view,即在view1上设置trailing与view2的leading距离为0时发现在设置界面找不到view2;经过一阵折腾后发现只有将view2的界面位置放在view1的左边时在设置界面才能找到view2,你可以设置view2的x值,快速达到这个目的。

android和ios推送服务商比较
:开发    :kukei    :2014-10-22 17:39:10
:评论(1)

最近为了给cnblogs加上推送功能,尝试了百度云,个推,极光推送三个推送服务商,现在就使用感受记录一下。

百度云:

百度云提供的移动开发服务比较全面,将所有服务都放在上面比较方便,web服务端也可以用百度云的云计算等等。实际使用效果是1.配置集成复杂(可能是我第一次使用的时候用的百度云);2.有的手机收不到推动通知,我到手头的htc刷的小米可以收到,魅族mx3收不到推动,是同一个app啊。

个推:

个推的优点1.许多知名app都在用,比如微博,墨迹天气等。缺点1。控制台太简陋,难看,感觉很不用心。2.文档太差劲。

极光推送:

缺点,搜集中;优点1.控制台用户体验好;2.开发文档规范,内容丰富。

我现在准备使用激光推送。

极光推送集成中问题(我的环境OSX10.10+XCode6.1)

1.提示“You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNot.....

XCode5升级到6后发现的问题及CNBlogs4IOS的bug解决
:IOS    :kukei    :2014-10-21 20:31:12
:评论(1)

这两天将我的t430从OXS10.9升级到10.10了,自然xcode也从5时代进入了6时代,问题自然也来。

1.An instance 0x7fe7ba22a000 of class UITableView was deallocated while key value observers were still registered with it。

问题原因是UITableView的实例被回收时,UITableView的实例注册的观察者还没取消,因此报错。我疑惑的是这种情况再xcode5上不报错,奇怪。

解决方法当让是在UITableView回收时取消观察了,代码如下:

- (void)dealloc
{
    [header free];
    [footer free];
}

free函数举例为:

- (void) free
{
    NSString *SDRObserverContentOffset = [_c.....
苹果开发者账号申请以及真机调试
:IOS    :kukei    :2014-04-21 17:12:16
:评论(1)
开发账号申请

周末终于决定申请一个苹果的开发者账号了,说行动就行动。

一路填写资料很顺利也很简单,麻烦的地方在支付,必须要visa或万事达的信用卡,而我手边没有,只好找朋友借一张用用,支付完成后,后快就到了apple发来的电子收据,说已经扣了我688元,但是我的申请一直卡在身份验证那一块。我就就上网查攻略,得到的反馈是因为我的姓名和信用卡的持卡人姓不一致,要给客服电话,然后客服发给你个邮件,你反馈身份证正反面,我就打客服4006701855,不想人家美国公司客服周末要休息,没办成。

今天上午我给客服打电话,我反映了我的情况以后,客服说让我等5到10分钟就给我激活,果然很快激活了。苹果的客服很热情周到。

真机调试

真机调试的攻略网上很多,要配置密钥,Provisioning Profiles等等,流程很繁琐。我想已经xcode5了,还不能简单点?我就拼着自己额xcode的了解,开始的真机调试的配置。

第一步:设置账号,点击项目,在右边的“Ge.....

storyboard界面设计中的约束功能
:IOS    :kukei    :2014-04-19 15:01:38
:评论(2)

storyboard界面设计中有个叫做约束的功能非常重要,特别是在以后ip6后ip将出现3到4个大小的屏幕尺寸,为了使app能在各种尺寸的屏幕上都能自适应,即不用代码来判断屏幕大小来设置view的大小,,此时约束就该发挥作用了。

首先约束的设置菜单在打开storyboard界面的【Editor -> pin -> ...】菜单中,这里面有几个功能:

  1. 设置宽度,高度;

    这个作用不明显

  2. 设置两个view之间横向和丛向的距离;

  3. 设置view到superview的上下左右的间距;

  4. 设置两个view等宽,等高;

我觉的第三个功能拿来做不同尺寸自适应非常好。

看一下设置的例子,例子中我们做了两个元素等高额的约束,但是发现1处有个红点剪头,而且2处结束线是橘色,说明这个约束没有设置完毕呢,设置完毕应该是蓝色的线条。那我们点击处的剪头进入问题列表中,让xcode来帮助我们完成设置,但是要注意,工具完成的设置不一定是我们想要的,所以这儿最好只当作提示来做。


xco.....

ViewController的生命周期分析和使用
:IOS    :kukei    :2014-04-18 09:53:32
:评论(1)

在ios开发给必须要十分清楚ViewController的生命周期,要不在出现一些问题时会不知所措,现在就整理一下这个知识点。

ViewController加载View

从Storyboards中加载的时候,会调用initWithCode,如果不存在则调用init。之后对里面的每个对象调用awakeFromNib方法。

从内存中alloc出来的情况下,调init方法。

ViewController查找与其关联的view,其顺序是:

  1. 先判断子类是否重写了loadView,如果有直接调用。之后调viewDidLoad完成View的加载。

  2. 如果是外部通过调用initWithNibName:bundle指定nib文件名的话,ViewController记载此nib来创建View。

  3. 如果initWithNibName:bundle的name参数为nil,则ViewController会通过以下两个步骤找到与其关联的nib。

    1. 如果类名包含Controlle.....

在tableview里面加subview后在ip4和ip5上显示不一样的问题
:IOS    :kukei    :2014-04-16 09:21:40
:评论(1)

我在在tableview里面加subview后在ip4和ip5上显示不一样;
直接在tableview的cell上面拖一个高度为50的view后,ip5上能显示正常,view随着tableview一起滚动,且没有遮挡住cell的内容,cell自动下移了view的高度;但是在ip4上显示错乱,能随着tableview滚动,但是view遮挡住了cell的内容,cell没有自动下移view的高度,我的布局图如下:

,鉴于以上情况,我对tableview做了一些处理,我将添加的view加到cell的header里面,但是此时发现依旧不行,我就给header设置了50的高度,发现ip5的view和cell之间增了50的高度,ip4显示正常了,此时我做了判断,在568时将header高度设置为0,480时将header高度设置为50,此时显示正常,但是我觉这这样不是好的解决方法,想请教一下,我的问题在那里,有没有好的解决方法。

我已经将这个问.....

APP开发手记01
:开发    :kukei    :2014-04-15 16:33:17
:评论(0)

最近在用博客园的wcf服务做博客园的android和ios的app,andorid的做了一小部分,开始搞ios,大概一月的时间,完成了博客的浏览,阅读,评论,发评论;新闻的浏览,阅读;个人登陆查看自己的博客,发博客等功能。期间为了实现目标,开发了下拉刷新插件,消息提示插件,完成了不同屏幕的高度自适应功能。

就在昨天晚上在做博客园上一个闪存的功能的时候,我突然迷茫了,我觉得博客园的web手机版,就能满足读者的需求,特别是闪存功能,我现在再做一个ios版的app,视乎是多余的。我之前的兴奋劲头突然一下子没有了,完成一个功能的成就感完全丧失。我开始考虑阅读类的服务,app版本比web手机版优势在哪里,哪类服务适合开发app版本,捋一捋这些对开发下一个app是必要的。

首先开发app对我个人而言是学习的过程,不得不说通过这个app的开发,我自己在ios开发方面提高了很多,本来有这个收获就足够了,但是为了使自己的收获有用,我还是比较一下app.....

ios开发3.5和4.0寸屏幕自适应中的一点问题
:IOS    :kukei    :2014-04-14 16:06:35
:评论(1)

在开发iso应用中需要考虑到ip4的3.5寸屏幕和ip5的4寸屏幕的高度不一样的问题。常见的问题有滚动条位置,底部被挡住等情况;我遇见是tableview中添加下拉上提刷新功能时刷新指示器显示位置的问题。

我自己根据网上已有代码写了一个下拉上提刷新插件:http://git.oschina.net/supdo/SDRefresh;

插件要根据tableview的高度来设置刷新指示器显示位置,为了正常工作,我在应用中对tableview的高度进行手工设置,代码如下:

- (void)viewDidLayoutSubviews
{
    [super viewWillLayoutSubviews];
        
    CGSize screenSize =  [UIScreen mainScreen].bounds.size;
    self.myBlogTable.frame = CGRectMake(0, 0,.....
IOS中用segment control控制table view 的切换
:IOS    :kukei    :2014-04-04 12:02:43
:评论(1)
项目中的文章列表分为最新和最热两个列表,格式完全一样,需要在一个页面上切换两个列表的显示。

方案一:

一个tableview,三个数据数组(一个最新,一个最热,一个指针引用),然后用segment切换来控制tableview的加载数据,切换时用reloaddata重新加载需要显示的数据。需要说明tableview加了下拉刷新的功能。

实现:功能已实现。

问题:

  1. 切换时重新加载内容,徒增性能损耗;

  2. 因为cell中有作者头像,是从互联网上加载的,因此每次重新加载tableview时都重新下载一遍头像,这对流量无端的损耗是不可饶恕的,是注定要被用户抛弃的。即使使用了异步加载,图像缓存技术,但是这个隐患还是很大。

  3. 滚动位置在切换时丢失,这个丢失是对用户体验而言的。实际是两个数据源大小不同,tableview的显示位置固定,影响用户体验。

  4. 下拉刷新完成后也会重新加载内容,如果刷新中切换页面,可能导致刷新内容丢失,或者刷新提示混乱。

  5. 试图解决方案:在.....