swift微博第6天(未登录界面的完善)

简介: swift微博第6天(未登录界面的完善)

1.未登录各个界面的展示

/*
    *  设置未登录界面
    *  isHome:  是否是主页
    *  image:   图片的名字
    *  message: 文本的信息
    */
    func setupVistorInfo(isHome:Bool,image:String,message:String) {
    // 如果不是首页,就隐藏转盘
    iconView.isHidden = !isHome
    // 修该中间图标
    homeIcob.image = UIImage(named:image)
    // 修改文本
    messageLabel.text = message
    messageLabel.height = NSString.JKtextStringHeight(string:message as NSString, size: CGSize(width:224,height:1000), fontSize: 14)
    loginButton.y = messageLabel.frame.maxY + 10
    zhuceBtn.y = messageLabel.frame.maxY + 10
    // 如果是首页就执行下面的动画
    if isHome {
        startAnimation()
     }
    }


2. 首页核心动画的调用


image.png


// MARK: 在这里执行动画
     private func startAnimation(){
        // 1.创建动画
        let anim = CABasicAnimation(keyPath: "transform.rotation")
        // 2.设置动画属性
        anim.toValue = 2 * M_PI
        anim.duration = 20
        anim.repeatCount = MAXFLOAT
        // 特别添加,该属性默认为YES,代表动画只要执行完毕就移除,false 代表不移除
        anim.isRemovedOnCompletion = false
        // 3.将动画添加到图层上
        iconView.layer.add(anim, forKey: nil)  
     }

3.在各个页面的调用方式

if !userLogin {
        vistorView?.setupVistorInfo(isHome: true, image: "visitordiscover_feed_image_house", message: "关注一些人,回这里看看有什么惊喜")
   }

4.在此加一下关于传一段文字返回其高度和宽度的计算

import UIKit
 extension NSString {
   // MARK: 1.返回文字的高度
   static func JKtextStringHeight(string: NSString, size: CGSize, fontSize: CGFloat) -> CGFloat {
    return string.boundingRect(with: size, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: fontSize)], context: nil).size.height
   }
   // MARK: 2.返回文字的宽度
    static func JKtextStringWidth(string: NSString, size: CGSize, fontSize: CGFloat) -> CGFloat {
    return string.boundingRect(with: size, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: fontSize)], context: nil).size.width
   }
 }

5.在swift里面如何定义协议

// 1.swift如何定义协议, 必须遵守 NSObjectProtocol
  protocol VisitorViewDelete: NSObjectProtocol{
       // 登录点击
       func logionWillClick()
       // 注册点击
       func registerWillClick()
   }
   // 2. 定义一个对象保存delegate,必须用weak 防止循环引用
   weak var delegate: VisitorViewDelete?
   // 3.方法的触发
   delegate?.registerWillClick()
   // 4.遵守协议 VisitorViewDelete
   // 5.挂代理
    customView.delegate = self
   // 6.方法的实现
   // MARK: 登录按钮的点击事件
   func logionWillClick() {
   }
   // MARK: 注册按钮的点击事件
   func registerWillClick() {
   }

6.导航栏的设置

// 设置导航条的颜色 最好是设置外观来设置全局的颜色
 //navigationController?.navigationBar.tintColor = UIColor.orange
 navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.registerWillClick))
 navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.logionWillClick))

7. 设置导航条和工具条的外观,因为外观设定全局有效,所以应该在程序一进来就设定,在AppDelegate里面设施

UINavigationBar.appearance().tintColor = UIColor.orange
    UITabBar.appearance().tintColor = UIColor.orange


目录
相关文章
|
2月前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
Swift iOS开发 容器
iOS 仿支付宝银行卡界面(支持Swift/OC)
在有支付相关的APP中,都有对应的钱包,虽然现在的支付宝,微信支付很流行,但是都是需要绑定自己的银行卡,那么这个银行卡的卡包页面该怎么实现呢?在网上找了许久也没有找到合适的,那就索性自己造轮子。
337 0
|
SQL 存储 Oracle
swift微博第25天(SQLite)
swift微博第25天(SQLite)
203 0
swift微博第25天(SQLite)
|
Swift
swift微博第21天(图片选择器)
swift微博第21天(图片选择器)
437 0
swift微博第21天(图片选择器)
|
Swift
swift微博第15天(新版的判断以及跟控制器的切换)
swift微博第15天(新版的判断以及跟控制器的切换)
153 0
swift微博第15天(新版的判断以及跟控制器的切换)
|
Swift
swift微博第14天(新特性的引导图)
swift微博第14天(新特性的引导图)
161 0
swift微博第14天(新特性的引导图)
|
安全 Swift 数据安全/隐私保护
swift微博第12天(OAuth授权)
swift微博第12天(OAuth授权)
152 0
swift微博第12天(OAuth授权)
|
Swift
swift微博第18天(NSDate+Extension.swift)
swift微博第18天(NSDate+Extension.swift)
112 0
|
Swift
swift微博第17天(UITableViewCell的自定义)
swift微博第17天(UITableViewCell的自定义)
222 0
|
Swift
swift微博第16天(KVC字典转模型)
swift微博第16天(KVC字典转模型)
121 0