我试图创建一个自定义的动作表控制器(因为我希望它与iPad上的动作表相似)。我在项目中使用XIB加载视图。
我有一个View Controller A
,我想从底部显示一个自定义的Table视图(仅是模仿actionSheet行为)。但是,当我通过将其添加到View Controller A中的自定义View来执行此操作时,该视图仍位于该View控制器的NavigationController和UITababar之下。
let vc = CustomActionTableViewController(nibName: "CustomActionTableViewController", bundle: nil)
self.addChildViewController(vc)
self.actionView.addSubview(vc.view)
vc.didMove(toParentViewController: self)
let horzConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:|[childView]|", options: [], metrics: nil, views: ["childView": vc.view])
let vertConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:|[childView]|", options: [], metrics: nil, views: ["childView": vc.view])
view.addConstraints(horzConstraints)
view.addConstraints(vertConstraints)
vc.view.translatesAutoresizingMaskIntoConstraints = false
我想将此添加到视图中,以便即使通过导航控制器和UITabbar也可以实现透明背景。
如何实现这一目标。此外,如何创建用于AirPods连接的卡片式底视图?可以使用Apple的UIKit或任何库来模仿这种视图吗?
答案 0 :(得分:4)
您应PrincipalContext
try
{
var ou = new PrincipalContext(ContextType.Domain, targetedDcUrl, container);
var searchPrincipal = new UserPrincipal(ou);
var searcher = new PrincipalSearcher(searchPrincipal);
var users = searcher.FindAll();
}
catch (PrincipalOperationException ex)
{
Console.WriteLine("Container does not exist");
}
,present
为ViewController
modalPresentationStyle
您可以将.overFullScreen
的{{1}}的背景let vc = CustomActionTableViewController(nibName: "CustomActionTableViewController", bundle: nil)
vc.modalPresentationStyle = .overFullScreen
self.present(vc, animated: true, completion: nil)
设置为黑色,并更改color
的值以设置透明度。
答案 1 :(得分:1)
import UIKit
class SetupSheet: UIViewController {
var content: UIView!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.6)
}
override func viewDidAppear(_ animated: Bool) {
displaySetupSheet()
}
private func displaySetupSheet() {
content.frame = CGRect(x: 8, y: view.frame.maxY, width: view.bounds.width - 16 , height: view.bounds.height / 2)
content.backgroundColor = .white
content.layer.cornerRadius = 30
self.view.addSubview(content)
UIView.animate(withDuration: 0.2, delay: 0.0, options: UIView.AnimationOptions.transitionCurlUp) {
self.content.frame.origin.y -= (self.view.bounds.height / 2) + 16
}
}
}
我知道这篇文章有点旧,但我尝试了很多东西,这可能会对某人有所帮助。这是一个完成的可重复使用的“Airpod”样式设置表。它是一个视图控制器,因此您可以使用 present()
来呈现它。初始化时,为内容分配一个 UIView,其中包含要显示的任何内部内容。 Here's a pic used in my app