• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > ScrollView掛载,为什么会很久才会显示画面

ScrollView掛载,为什么会很久才会显示画面

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了scrollview,horizontalscrollview,scrollview用法,android scrollview,scrollview隐藏滚动条等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ScrollView掛载,为什么会很久才会显示画面
描述:

我的程式如下
其实很简单,就是从网路上跑一个ajax 然后,一个json格式的资料
我有两个func

一个 refreshWithFrame , 一个 indexReFreshFrame

在refreshwithFrame 里我先初始 toolbar ,然后,跑url ,抓到jons 执行 indexfreahframe , 进行json的解析 跟 画面的大小

但是,当我把 mainscrolview 放在 refreshwithframe 掛载时,速度是很快的
但是当我把 mainscrollview被在 indexrefreshfram时,就会非常非常的慢,快二十秒才会显示我的scrollview,可是程式几乎是一秒就跑完了。

可能问题是
1.我网路上抓json的方式错误
2.未知的错误

这个简单的专案我写了好久,都不知道问题出在那里

求大大解 程式如下

class ViewController: UIViewController ,UIToolbarDelegate, UIScrollViewDelegate {

let webImageURL:String = "http://xxxxe.com/upload/"
let webAJAXURL:NSURL = NSURL(string: "http://xxxx.comw/ajax.php")!
var frameWidth:CGFloat = 0.0
var frameHeight:CGFloat = 0.0
var MyFunc:myFunc!
let SPACE:CGFloat = 2.0
var mainScrollView:UIScrollView!
var i_PromoJSON:NSMutableDictionary!
var i_NewsJSON:NSMutableDictionary!
var mainScrollview:UIScrollView!
var toolBar:UIToolbar!


func refreshWithFrame(frame:CGRect){
    self.view.frame = frame
    self.view.backgroundColor = UIColor.clearColor()
    MyFunc = myFunc()
    frameWidth = self.view.frame.size.width
    frameHeight = self.view.frame.size.height
    toolBar = UIToolbar(frame: CGRectMake(0, frameHeight - 40, frameWidth, 40))
    toolBar.barStyle = UIBarStyle.Default
    toolBar.backgroundColor = UIColor.lightGrayColor()
    toolBar.translucent = true
    toolBar.tintColor = UIColor.blackColor()
    toolBar.alpha = 1
    
    let homeBarButton = MyFunc.setBarButton("home.png", eventName: "gotoHome")
    let hearBarButton = MyFunc.setBarButton("heart.png", eventName: "gotoLove")
    let cartBarButton = MyFunc.setBarButton("cart.png", eventName: "gotoCart")
    let memberBarButton = MyFunc.setBarButton("member.png", eventName: "gotoMember")
    
    let barButtonSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
    barButtonSpace.width = (self.view.frame.size.width - (homeBarButton.width * 4 + 20)) / 4
    toolBar.setItems([homeBarButton, barButtonSpace, hearBarButton,barButtonSpace, cartBarButton,barButtonSpace, memberBarButton], animated: true)
    toolBar.userInteractionEnabled = true
    toolBar.sizeToFit()
    toolBar.delegate = self
    self.view.addSubview(toolBar)
    
    //执行网路序
    var postString:String!
    let request = NSMutableURLRequest(URL:webAJAXURL)
    request.HTTPMethod = "POST"
    
    postString = "type=ios&locate=index"
    request.HTTPBody = try! postString.dataUsingEncoding(NSUTF8StringEncoding)
    
    
    
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in
        if error != nil {
            print("\(error)")
            return
        }
        do {
            let myJSON:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
            self.indexReFreshFrame(myJSON!)
        }
        catch {print(error)}
    }
    task.resume()
}
    



//MARK: CallBack & Listener
//------------------------------------------------------------

func indexReFreshFrame(myJSON:AnyObject){
    //json解析
    print("得到json")
    //print(myJSON)
    let i_JSON = myJSON as! NSMutableDictionary
    i_PromoJSON = NSMutableDictionary()
    i_NewsJSON = NSMutableDictionary()
    let bannerW:CGFloat = frameWidth
    let bannerH:CGFloat = 100.0
    
    i_PromoJSON.setObject(i_JSON["promo_1"] as! NSMutableArray, forKey: "馆长推荐")
    i_PromoJSON.setObject(i_JSON["promo_2"] as! NSMutableArray, forKey: "新品上市")
    i_PromoJSON.setObject(i_JSON["promo_3"] as! NSMutableArray, forKey: "热销产品")
    i_PromoJSON.setObject(i_JSON["promo_4"] as! NSMutableArray, forKey: "折扣活动")
    i_NewsJSON.setObject(i_JSON["news"] as! NSMutableArray, forKey: "最新消息")
    let i_banner:NSMutableArray = i_JSON["banner"] as! NSMutableArray
    

    //高度计算
    //newstable高度
    var mainScrollViewHeight:CGFloat = 0.0
    var tHeight:Int = 0
    //tHeight = (i_JSON["promo_1"] as! NSMutableArray).count * 180 + 40 + 100
    for var i:Int = 0 ; i < i_PromoJSON.count ; i++ {
        let tarKey:String = i_PromoJSON.allKeys[i] as! String
        var tmpCount:CGFloat = CGFloat((i_PromoJSON.objectForKey(tarKey) as! NSMutableArray).count)
        mainScrollViewHeight += 40
        if tmpCount % 2 == 0 {tmpCount = tmpCount / 2}
        else {tmpCount = ceil(tmpCount / 2) }
        
        mainScrollViewHeight += tmpCount * 200

        
    }
    
    mainScrollViewHeight += 100 + 40 + CGFloat((i_NewsJSON.objectForKey("最新消息") as! NSMutableArray).count * 180) + CGFloat(SPACE * 4)
    print("高度计算")
    mainScrollview = UIScrollView()
    mainScrollview.backgroundColor = UIColor.lightGrayColor()
    mainScrollview.delegate = self
    mainScrollview.showsHorizontalScrollIndicator = false
    mainScrollview.showsVerticalScrollIndicator = true
    //print(toolBar.frame.size.height)
    //mainScrollview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - toolBar.frame.size.height)
    mainScrollview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 40)
    mainScrollview.contentSize = CGSizeMake(self.view.frame.size.width, 500)
    self.view.addSubview(mainScrollview)
    print("ScrollView掛载完成")
    //mainScrollViewHeight = CGFloat( (i_JSON["promo_1"] as! NSMutableArray).count * 180 + 40 + SPACE + 100 + SPACE )
    
    
    
}

//Mark   -- Delegate
 //--------------------------------------


}

解决方案1:

我试乎发现问题所在了

如果我把画面的部份写在 refreshWithFrame 一切都是正常的
可,当我把addsubview的部份写在其他的func里时,显示都会很慢才出现,这有解吗?


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sc.12530怎么用flatlist替换scrollview?
  • ScrollView中第一个CELL异常错位
  • 关于多层uiscrollview的交互手势冲突
  • 将一个控制器的View添加到scrollView中,滑出屏幕为什么不走ViewDidDisapper方法?
  • ios针对某个View一段时间没有接收到用户的相应执行事件
  • UIScrollview嵌套UITableview添加约束问题
  • ScrollView掛载,为什么会很久才会显示画面
  • iOS开发中-->关于使用Masonry去自适应ScrollView滚动视图内容的一些疑问!!!
  • 想把2个tableview竖着放在scrollview上
  • ios在view中add一个uitabbarcontroller其他的控件的点击事件冲突

相关文章

  • 2017-06-05 问题背后的问题读后感iosloading问题
  • 2017-06-05 iOS中的webview加载的是html。。那么html中的外联js和CSS文件怎么加载?
  • 2017-06-05 iOS字符串截取问题
  • 2017-06-05 iOS10编译器报错
  • 2017-06-05 后台需要索引数组参数,iOS怎么传?
  • 2017-06-05 cocos2d中多个CCSprite循环播放CCMoveBy动画的问题
  • 2017-06-05 JSPatch在替换方法的过程中,也就是runtime的过程中是如何拿到实例对象的?
  • 2017-06-05 新浪微博登陆首页类似微博首页,一张图的时候是如何确定图大小的?
  • 2017-06-05 实时人脸检测,相机关闭
  • 2017-09-23iOS 中MD5加密

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • iOS远程推送ios推送服务平台哪个好点?
    • weex在IOS上面navigator的push多次后,手势向右滑动只能返回一页问题
    • iOS开发中WKWebView的使用问题拦截跳转
    • http与https的区别https使用自签名证书的问题
    • 你们的红点是推送来的么?还是使用http接口
    • iOSNSString与UInt8的转换问题
    • iOS-UIButton按住后松开不执行UIControlEventTouchUpInside
    • 闪动问题——iOS——UICollectionItem
    • ios下,avos如何实现仅在wifi情况下上传?
    • iOS即时通信用什么sdk

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有