我是 Swift 的新手,我一直在尝试构建一个应用程序并边学习边学习。我有一个 NavigationView,它包含一个列表作为侧边栏,在用户单击时呈现内容。可以抓住这两个窗格之间的栏以允许用户调整大小。这似乎是 NavigationView 的默认行为。我正在尝试找到一种方法来禁用它,因为我不希望用户调整侧边栏的大小。
struct Sidebar: View {
var body: some view {
List {
NavigationLink("First section", destination: FirstSection)
}
.frame(minWidth: 150, maxWidth: 150)
}
}
Run Code Online (Sandbox Code Playgroud)
我也找不到一种方法来告诉 Swift 我希望列表视图具有适合内容的动态宽度。就像使用 CSS 完成的一样width: fit-content;
在下图中,您可以看到我能够将侧边栏的大小调整为几乎屏幕的一半。如何禁用这种行为?
我在 Xcode 和 swift 中工作,我创建了一个视图,作为一个可以在点击时切换的菜单,当菜单出现时,我仍然可以单击它下面的测试按钮。我不希望这种情况发生。我希望视图后面的所有内容都被禁用,优先考虑菜单视图。(查看下图)
这是我正在使用的代码:
@IBAction func MenuButton(sender: UIButton) {
if self.MenuView.frame.origin.x == -180 {
UIView.animateWithDuration(0.5, animations:{
self.MenuView.frame = CGRectMake(self.MenuView.frame.origin.x + 180, self.MenuView.frame.origin.y, self.MenuView.frame.size.width, self.MenuView.frame.size.height)
})
} else {
UIView.animateWithDuration(0.5, animations:{
self.MenuView.frame = CGRectMake(self.MenuView.frame.origin.x - 180, self.MenuView.frame.origin.y, self.MenuView.frame.size.width, self.MenuView.frame.size.height)
})
}
}
Run Code Online (Sandbox Code Playgroud)
视图在左侧隐藏 180 像素,当单击菜单按钮时,视图将向右移动 180 像素,从而将其带到前面。该函数检查视图是否已经打开,以便它可以将其动画回 180 像素以隐藏它。
我唯一需要的是禁用单击视图。
我正在构建一个 React 组件,该组件将根据用户传递的属性具有不同的 HTML 标签。这是一个例子:
interface Common {
common?: number;
}
interface A extends Common {
first?: string;
second?: string;
check: true;
}
interface B extends Common {
third?: string;
fourth?: string;
check?: false;
}
type Test = A | B;
Run Code Online (Sandbox Code Playgroud)
为了测试这一点,我期待以下内容:
// Success
let test: Test = {
common: 1,
check: true,
first: "text"
}
// Success
let test: Test = {
common: 1,
check: false,
third: "text"
}
// Fail
let test: Test = {
common: 1,
check: …Run Code Online (Sandbox Code Playgroud) 我一直在尝试向按钮添加工具提示,该提示仅在满足某些条件时显示。我正在使用uikit@3.0.0-beta.35。根据文档,我应该在beforeshow事件返回false 。
UIkit.tooltip($element, { pos: 'top' });
$element.on('beforeshow', function(){
return false;
});
if(condition){
UIkit.tooltip($element).show();
}
Run Code Online (Sandbox Code Playgroud)
问题在于该beforeshow函数由于某种原因永远不会触发。我什至尝试了UIkit文档中提到的这种语法:
UIkit.util.on($element, 'beforeshow', function () {
return false;
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些方法都不适合我。