【发布时间】:2017-11-10 17:05:51
【问题描述】:
我遇到了一个问题,即我的 UI 按钮没有响应。通常我可以像往常一样点击它,但是当视图加载到 UIpageviewcontrol 中时,必须用力按下按钮才能得到响应。这是为什么?非常感谢
UIpageViewControl:
import UIKit
class mainPageViewController: UIPageViewController ,
UIPageViewControllerDelegate , UIPageViewControllerDataSource{
lazy var orderedViewControllers : [UIViewController] = {
return [self.newVC(viewController: "messages"),
self.newVC(viewController: "discover"),
self.newVC(viewController: "profile")
]
}()
var pageControl = UIPageControl()
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self;
if let firstVC = orderedViewControllers.first{
setViewControllers([firstVC],
direction: .forward,
animated: true,
completion: nil);
self.delegate = self;
// ads dots if i want later
//configPageControl()
}
// Do any additional setup after loading the view.
}
func newVC(viewController: String ) -> UIViewController{
return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: viewController);
}
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
let pageContentViewContoller = pageViewController.viewControllers![0];
self.pageControl.currentPage = orderedViewControllers.index(of: pageContentViewContoller)!
}
func configPageControl(){
pageControl = UIPageControl(frame: CGRect(x: 0, y: UIScreen.main.bounds.maxY - 50, width: UIScreen.main.bounds.width, height: 50))
pageControl.numberOfPages = orderedViewControllers.count;
pageControl.currentPage = 0;
pageControl.tintColor = UIColor.white;
pageControl.pageIndicatorTintColor = UIColor.white;
pageControl.currentPageIndicatorTintColor = UIColor.red;
self.view.addSubview(pageControl);
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.index(of : viewController)else{
return nil;
}
let previousIndex = viewControllerIndex - 1;
guard previousIndex >= 0 else{
// infinatly swipe in a loop
return orderedViewControllers.last;
// no swipe back
//return nil;
}
guard orderedViewControllers.count > previousIndex else{
return nil;
}
return orderedViewControllers[previousIndex];
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.index(of : viewController)else{
return nil;
}
let nextIndex = viewControllerIndex + 1;
guard orderedViewControllers.count != nextIndex else{
// infinatly swipe in a loop
return orderedViewControllers.first;
// no swipe back
//return nil
}
guard orderedViewControllers.count > nextIndex else{
return nil;
}
return orderedViewControllers[nextIndex];
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
ViewController 的按钮不正常
import UIKit
class ProfileViewController: UIViewController {
@IBOutlet weak var moneyOutlet: UILabel!
@IBOutlet weak var scoreOutlet: UILabel!
@IBOutlet weak var profilePicOutlet: UIImageView!
@IBOutlet weak var usernameOutlet: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func trophiesPressed(_ sender: Any) {
// not triggering as expected
print("hello world")
}
}
【问题讨论】:
标签: ios iphone swift xcode uibutton