自动布局和故事板无法正常工作 - Swift?
Autolayout and storyboard not working - Swift?
我是 swift 和 ios 开发的新手,我一直在学习本教程:https://www.youtube.com/watch?v=Vq71SPkJIus
但出于某种原因,即使我在自动布局的功能视图中将文本居中,它也会一直显示到底部
到目前为止,我已经尝试过更改约束,但这似乎并没有将它向上移动,它几乎就像是其他东西在将它向下推?
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var slideScrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
slideScrollView.delegate = self
let slides:[Slide] = createSlides()
setupScrollView(slides: slides)
pageControl.numberOfPages = slides.count
pageControl.currentPage = 0
// Do any additional setup after loading the view, typically from a nib.
}
func createSlides() -> [Slide] {
let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide1.label.text = "Slide1"
let slide2:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide2.label.text = "Slide2"
return [slide1, slide2]
}
func setupScrollView(slides:[Slide]) {
slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.width)
slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
slideScrollView.isPagingEnabled = true
for i in 0 ..< slides.count {
slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
slideScrollView.addSubview(slides[i])
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
pageControl.currentPage = Int(pageIndex)
}
class ViewController: UIViewController , UIScrollViewDelegate{
@IBOutlet weak var mainScroll: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
let color = [UIColor.red,UIColor.blue,UIColor.gray,UIColor.orange,UIColor.brown]
let textBtn = ["A real-life bear","A real-life bear","A real-life bear","A real-life bear","A real-life bear"]
let textLb = ["Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London"]
var counter = 0
var currentPage = 0
override func viewDidLoad() {
super.viewDidLoad()
for i in 0..<color.count {
// Random Image set and scroll
let xpostion = self.mainScroll.frame.width * CGFloat(i)
let slide:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide.frame = CGRect(x: xpostion, y: 0, width: self.mainScroll.frame.width , height: self.mainScroll.frame.height)
slide.backgroundColor = color[i]
slide.textLabel.text = textLb[i]
slide.textBtn.setTitle(textBtn[i], for: .normal)
mainScroll.contentSize.width = mainScroll.frame.width * CGFloat(i + 1)
mainScroll.addSubview(slide)
}
mainScroll.delegate = self
pageControl.numberOfPages = color.count
pageControl.currentPage = 0
}
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
let pageWidth = mainScroll.frame.width
self.currentPage = Int((mainScroll.contentOffset.x + pageWidth / 2) / pageWidth)
self.pageControl.currentPage = self.currentPage
counter = currentPage
}
}
哇,原来我是个笨蛋。感谢@vacawama 看到我在 setupScrollView
中输入 height: view.frame.width
而不是 height: view.frame.height
。解决了,非常感谢@vacawama
我是 swift 和 ios 开发的新手,我一直在学习本教程:https://www.youtube.com/watch?v=Vq71SPkJIus
但出于某种原因,即使我在自动布局的功能视图中将文本居中,它也会一直显示到底部
到目前为止,我已经尝试过更改约束,但这似乎并没有将它向上移动,它几乎就像是其他东西在将它向下推?
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var slideScrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
slideScrollView.delegate = self
let slides:[Slide] = createSlides()
setupScrollView(slides: slides)
pageControl.numberOfPages = slides.count
pageControl.currentPage = 0
// Do any additional setup after loading the view, typically from a nib.
}
func createSlides() -> [Slide] {
let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide1.label.text = "Slide1"
let slide2:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide2.label.text = "Slide2"
return [slide1, slide2]
}
func setupScrollView(slides:[Slide]) {
slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.width)
slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
slideScrollView.isPagingEnabled = true
for i in 0 ..< slides.count {
slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
slideScrollView.addSubview(slides[i])
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
pageControl.currentPage = Int(pageIndex)
}
class ViewController: UIViewController , UIScrollViewDelegate{
@IBOutlet weak var mainScroll: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
let color = [UIColor.red,UIColor.blue,UIColor.gray,UIColor.orange,UIColor.brown]
let textBtn = ["A real-life bear","A real-life bear","A real-life bear","A real-life bear","A real-life bear"]
let textLb = ["Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London","Did you know that Winnie the chubby little cubby was based on a real, young bear in London"]
var counter = 0
var currentPage = 0
override func viewDidLoad() {
super.viewDidLoad()
for i in 0..<color.count {
// Random Image set and scroll
let xpostion = self.mainScroll.frame.width * CGFloat(i)
let slide:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide.frame = CGRect(x: xpostion, y: 0, width: self.mainScroll.frame.width , height: self.mainScroll.frame.height)
slide.backgroundColor = color[i]
slide.textLabel.text = textLb[i]
slide.textBtn.setTitle(textBtn[i], for: .normal)
mainScroll.contentSize.width = mainScroll.frame.width * CGFloat(i + 1)
mainScroll.addSubview(slide)
}
mainScroll.delegate = self
pageControl.numberOfPages = color.count
pageControl.currentPage = 0
}
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
let pageWidth = mainScroll.frame.width
self.currentPage = Int((mainScroll.contentOffset.x + pageWidth / 2) / pageWidth)
self.pageControl.currentPage = self.currentPage
counter = currentPage
}
}
哇,原来我是个笨蛋。感谢@vacawama 看到我在 setupScrollView
中输入 height: view.frame.width
而不是 height: view.frame.height
。解决了,非常感谢@vacawama