2015-10-29 09:00:57 h1078954008 阅读数 15581
最近在Xcode7下做一个项目,由于还不适应LaunchScreen.storyboard,就把之前项目的LaunchScreen.xib拖进来当做启动界面。

首先 在上面放了一个全屏的ImageView,图片为LaunchScreen.png,在真机测试启动界面为黑屏,但是在模拟器确正常。把image设置为空,改变imageView的background color发现有效,说明不是imageView的问题。网上的改变图片解析度、使用Assets.xcassets都不行。

解决办法:把LaunchScreen.png改为LaunchImage.png、Launch.png、LaunchBackgroundImage.png、LaunchBuLaBuLaBu.png…
改变图片名字,只要不是LaunchScreen.png就可以
 这可能是一个小bug,之前的项目都没问题。遇到的情况很少。


2017-10-10 23:25:19 qijian_shashi 阅读数 2805

我在appdelegate中加载首页前有个网络请求,是AFN的get请求,这个时候启动图加载完只要执行网络请求的时候就会黑屏一会才进入首页。分析了一下是网络请求阻塞了主线程,导致首页没加载出来黑屏了。怎么都觉得异步的不行呀,我觉得同步的还行,只是没有试。奇葩的需求,为什么要在appdelegate中进行网络请求呢?

首先试错:

问题出现可能性。

1.首页的多了异步请求跟初始化的请求不知道谁最先执行(切断首页的一切请求,还是不行,取掉首页的列表的创建可以避免黑屏,带入歧途,用代码创建所有视图,试图从列表的创建解决问题,未果)。                  

  2.启动图加载时的初始化URL的请求在主线程,网络请求阻塞了主线程的加载,未能加载出首页(可能性最大),试图把网络请求放在子线程在主线程加载界面,失败。又把请求放在一个队列当中,控制队列的执行顺序,又失败。原因不详,估计是AFN的异步请求始终在主线程中进行,只有当手机内存吃紧的时候才给分配子线程,没法测,也不科学。

 解决办法:                          

用嘴笨的办法解决。就是把初始化放在首页,保证在其他请求的前面执行,有个缺点就是太多的异步请求完了都得刷新界面,怎么办,(把其他请求放在初始化请求的成功里面执行,并通过再主线程中刷新界面来保证多个异步请求会在子线程中进行,开启主线程只能来刷新界面,始终不给其他请求枪战主线程资源提供机会)。结果可想而知。

 

  这个过程告诉我,只要不是杀头的需求,经过时间的想办法,一定能解决。

 

2015-11-18 18:15:04 u011484134 阅读数 3291

启动过慢

在app启动的时候,如果发现应用启动过慢,有可能是下面的情况引起的:

1、依赖了过多的lib

2、app引用的资源导致加载时间过长

3、在启动页面的onCreate和onResume执行了耗时比较长的事务

启动过慢-->导致黑屏

闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面,但我们可以通过一下两个办法解决这个问题:
把起始页面的图片作为窗口的背景图:::
styles.xml文件:
<pre name="code" class="java">//1、设置背景Theme
<style name="Theme.AppStartLoad" parent="android:Theme"> 
<item name="android:windowBackground">@drawable/ipod_bg</item>
<item name="android:windowNoTitle">true</item> 
</style>
//2、设置透明Theme
<style name="Theme.AppStartLoadTranslucent" parent="android:Theme.NoTitleBar.Fullscreen"> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowNoTitle">true</item> 
</style>




AndroidManifest.xml文件:
<activity
    android:name=".StartActivity"
  <!-- 使用上面定义的样式 mythou-->
    android:theme="@style/Theme.AppStartLoad"
    android:label="@string/app_name" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

注意:上面的自定义style,需要使用android:Theme.NoTitleBar.Fullscreen这个主题,否者起始页面中的图片会与android:windowBackground的图片显示不一致。





2016-10-09 17:28:48 April52522 阅读数 570

启动app,进入app欢迎界面时会有短暂的白屏或者黑屏问题,虽然没有什么功能性影响,但是影响客户的体验感。解决方法:在样式中设置true把Activity界面设置为透明

在styles.xml中设置主题

<style name="Theme.AppStartLoadTranslucent" parent="AppTheme">  
            <item name="android:windowIsTranslucent">true</item>  
            <item name="android:windowNoTitle">true</item>  
        </style> 

在AndroidManifest.xml文件中设置启动Activity的theme

<activity android:name="zz.guojin.yule.activity.SplashActivity" 
            android:launchMode="singleTask"  
            android:theme="@style/Theme.AppStartLoadTranslucent">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

#

搞定了,so easy,快去试试吧

2015-07-28 10:26:57 shuaihj 阅读数 5993

iOS工程中删除默认的并使用自建的ViewController后黑屏

老帅(http://blog.csdn.net/shuaihj)

现象

往往我们新建一个iOS工程后,会使用自定义的ViewController,而不是其自带的。作为第一次使用iOS开发的人来说,就会遇到一个问题,app启动后黑屏,并没有如预想的那样显示自定义的View!

查看错误信息

Failed to instantiate the default view controller for UIMainStoryboardFile ‘MainStoryboard’ - perhaps the designated entry point is not set?

原因

这个问题的原因是没有为你的StoryBoard指定一个初始的View Controller。

解决方法

指定初始View Controller

IOS 拍照黑屏解决

阅读数 3063

iOS app启动页

阅读数 319

没有更多推荐了,返回首页