swift微博第5天(未登录界面的布局)

简介: swift微博第5天(未登录界面的布局)
  • 1.自定义一个VisitorView  的UIView来展示未登录的情况


// 定义一个变量保存当前用户是否登录
 var userLogin = false
 override func loadView() {
  userLogin ? super.loadView() : setViewUp()
  }
 // MARK: 内部控制方法
 /*
  * 创建未登录界面
  */
 private func  setViewUp(){
  print("哈哈")
  let customView = VisitorView()
  customView.backgroundColor = UIColor.JKGlobalColor()
  view = customView
 }
  • 重写View 的一些设置(一定要写上两个方法)


下面的两个方法
    override init(frame: CGRect) {
   super.init(frame: frame)
  }
  // swift推荐我们自定义一个控件,要么用纯代码,要么用xib或者stroyboard
  required init?(coder aDecoder: NSCoder) {
    // 如果通过xib或者stroyboard创建该类,那么就会崩溃
    fatalError("init(coder:) has not been implemented")
  }
  • 具体的重写view里面的


import UIKit

class VisitorView: UIView {

override init(frame: CGRect) {
    super.init(frame: frame)
    // 1.添加子控件
    addSubview(iconView)
    addSubview(homeIcob)
    addSubview(maskBGView)
    addSubview(messageLabel)
    addSubview(loginButton)
    addSubview(zhuceBtn)
    // 2.0布局子控件
    // 2.1.设置背景圈圈
    iconView.centerX = JKscreenW/2.0
    iconView.centerY = JKscreenH/2.0
    // 2.2.设置中间的小房子
    homeIcob.centerX = JKscreenW/2.0
    homeIcob.centerY = JKscreenH/2.0
    // 2.3.设置文本
    messageLabel.y = iconView.frame.maxY + 10
    messageLabel.centerX = JKscreenW/2.0
    // 2.4.设置按钮
    zhuceBtn.x = messageLabel.x
    zhuceBtn.y = messageLabel.frame.maxY + 10
    loginButton.x = messageLabel.frame.maxX - 100
    loginButton.y = messageLabel.frame.maxY + 10
    // 2.5.设置蒙版
    maskBGView.centerX = JKscreenW/2.0
    maskBGView.centerY = JKscreenH/2.0
}
// swift推荐我们自定义一个控件,要么用纯代码,要么用xib或者stroyboard
required init?(coder aDecoder: NSCoder) {
    // 如果通过xib或者stroyboard创建该类,那么就会崩溃
    fatalError("init(coder:) has not been implemented")
}
// MARK: 懒加载一些控件
// 转盘
private lazy var iconView: UIImageView = {
    let iv = UIImageView(image: UIImage(named: "visitordiscover_feed_image_smallicon"))
    return iv
}()
// 图标
private lazy var homeIcob: UIImageView = {
    let iv = UIImageView(image: UIImage(named: "visitordiscover_feed_image_house"))
    return iv
}()
// 文本
private lazy var messageLabel: UILabel = {
    let label = UILabel()
    label.height = NSString.JKtextStringHeight(string:"三月,醉一场青春的流年。慢步在三月的春光里,走走停停,看花开嫣然,看春雨绵绵,感受春风拂面,春天,就是青春的流年。", size: CGSize(width:224,height:1000), fontSize: 14)
    label.width = 224
    label.font = UIFont.systemFont(ofSize: 14)
    label.numberOfLines = 0
    label.textAlignment = NSTextAlignment.center
    label.textColor = UIColor.JKTextGayColor()
    label.text = "三月,醉一场青春的流年。慢步在三月的春光里,走走停停,看花开嫣然,看春雨绵绵,感受春风拂面,春天,就是青春的流年。"
    return label
}()
// 登录按钮
private lazy var loginButton: UIButton = {
    let login = UIButton()
    login.width = 100
    login.height = 30
    login.setTitleColor(UIColor.JKTextGayColor(), for: UIControlState.normal)
    login.setTitle("登录", for: UIControlState.normal)
    login.setBackgroundImage(UIImage(named: "common_button_white_disable"), for: UIControlState.normal)
    return login
}()
// 注册按钮
private lazy var zhuceBtn: UIButton = {
    let zhuce = UIButton()
    zhuce.width = 100
    zhuce.height = 30
    zhuce.setTitleColor(UIColor.orange, for: UIControlState.normal)
    zhuce.setTitle("注册", for: UIControlState.normal)
    zhuce.setBackgroundImage(UIImage(named: "common_button_white_disable"), for: UIControlState.normal)
    return zhuce
}()
// 蒙版的添加
private lazy var maskBGView: UIImageView = {
    // UIImageView 的初始化
    let maskbgView = UIImageView(image: UIImage(named:"visitordiscover_feed_mask_smallicon"))
    // UIImageView 的frame
    //  maskbgView.frame = CGRect(x:10,y:10,width:100,height:100)
    // UIImageView 的图片填充方式
    maskbgView.contentMode = UIViewContentMode.scaleAspectFill
    return maskbgView
  }()

}

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