小编You*_*eem的帖子

如何在 SwiftUI (MacOS) 中禁用 Sidebar NavigationView 的可调整大小?

我是 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;

在下图中,您可以看到我能够将侧边栏的大小调整为几乎屏幕的一半。如何禁用这种行为?

在此输入图像描述

macos swift navigationview swiftui

8
推荐指数
1
解决办法
1158
查看次数

防止快速点击视图

我在 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 像素以隐藏它。

我唯一需要的是禁用单击视图。

xcode uiview ios animatewithduration swift

5
推荐指数
2
解决办法
4823
查看次数

如何使用 Typescript 创建基于值的动态类型

我正在构建一个 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)

typescript

5
推荐指数
1
解决办法
3906
查看次数

UIkit 3事件不起作用

我一直在尝试向按钮添加工具提示,该提示仅在满足某些条件时显示。我正在使用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)

不幸的是,这些方法都不适合我。

getuikit

1
推荐指数
1
解决办法
3530
查看次数