小编Rob*_*uba的帖子

AWS SAM CLI 全新安装引发错误 - dyld:库未加载:@executable_path/../.Python

我正在尝试使用通过 Homebrew 安装的 AWS SAM CLI,当我尝试将 sam 与任何命令一起使用时,我看到以下错误:

dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /usr/local/Cellar/aws-sam-cli/0.53.0/libexec/bin/python3.7
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

查看.Python错误中引用的文件,它被符号链接到一个实际上不存在的 python 文件夹:

drwxr-xr-x   7 RCR  staff   224 Jun 16 19:40 .
drwxr-xr-x   9 RCR  staff   288 Jul  8 14:55 ..
lrwxr-xr-x   1 RCR  staff    70 Jun 16 19:40 .Python -> ../../../../opt/python/Frameworks/Python.framework/Versions/3.7/Python
drwxr-xr-x  39 RCR  staff  1248 Jul  8 14:55 bin
drwxr-xr-x   3 RCR  staff    96 Jun 16 19:40 include
drwxr-xr-x   3 RCR  staff    96 Jun 16 19:40 …
Run Code Online (Sandbox Code Playgroud)

python homebrew aws-sam-cli aws-sam

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

根据子类中的UIButton大小设置cornerRadius的最佳位置?

所以我将在应用程序中有一些不同的圆形按钮(一直到圆形按钮),从我所知道的,最简单的方法是设置按钮CALayer的cornerRadius属性.

但是,我不想为每个控制器中需要它的每个按钮手动执行此操作,因此我认为在init上设置此类的简单子类就是这样.

我使用Storyboard和Autolayout来定位和调整按钮的大小,并将它们分配给这个子类.

class RoundedButton: UIButton {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.layer.cornerRadius = self.bounds.size.height / 2.0
        self.clipsToBounds = true
        NSLog("BUTTON BOUNDS: H-%f  W-%f", self.bounds.size.height, self.bounds.size.width)
        NSLog("BUTTON FRAME: H-%f  W-%f", self.frame.height, self.frame.width)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我已经发现,在这一点上(即init),框架和边界的大小都不是最终的.对于故事板中尺寸(和约束)为H40 x W40的按钮,边界/框架尺寸显示为H30 x W38.

这意味着cornerRadius没有得到我期望的值.

我已经确认在稍后的某个时间点(例如,当按钮已经响应了一个水龙头时)它的帧/边界确实是H40 x W40.

毕竟,我的问题是,在UIButton子类中,何时/哪里可以使用实例的最终帧/边界值安全地设置cornerRadius?

iphone uibutton calayer ios swift

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

具有上下文/活动的静态实用程序类 - Android

在Android应用程序的开发中,我已经找到了一组实用程序类型的方法,我将它放入静态类中.所有这些方法都用于多个活动,并且大多数活动不需要来自调用活动的任何信息.

但是,我现在有一些方法需要Activity的Context和一个需要Activity本身的方法.让我举例说明其中一些:

  • getDeviceNaturalOrientation() - 使用Activity的getWindow().getWindowManager().getDefaultDisplay()来访问显示旋转,宽度和高度,以确定设备的自然方向.
  • getDeviceOrientation() - 与上面类似,但要获取当前方向
  • createFile() - 使用Context来访问某些资源(字符串)并创建和显示一些Toasts

现在,关于这个Utils类的重要问题是:

  1. 到目前为止,每个函数都接受一个Context参数,我从我所使用的Activity中传递,但是可以在Utils类中创建一个静态Context或Activity变量并在每个Activity的开头设置它(就像在onCreate中一样) )?此变量将用于需要Context或Activity实例的任何函数.
  2. 假设不建议使用上述内容,是否可以将Activity参数传递给方法,或者是否有理由仅将Activity作为Context传递?我上面用于设备方向函数的方法特定于Activity对象,而不是Context,因此要么作为Activity传递,要么作为Context传递并转换为Activity(后者听起来像一个可怕的想法).

此外,我非常乐观地认为这个Util类可能不适合需要Context/Activity的这些方法,所以我欢迎那些仍然会阻止在每个使用它们的活动类中复制这些方法的替代方法.

android utilities android-activity

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

获取视图被夸大的资源ID

有没有办法获取视图膨胀的布局的资源ID(如R.layout.viewtoInflate)?

我正在尝试实现一个列表视图,它使用2个自定义布局列表项.使用哪个项目布局基于用于填充列表视图的对象中的字段.

我在自定义适配器中缺少的是一种了解我在getView()中获得的'convertView'被夸大的资源的方法.如果我能得到那些信息,我可以比较并确定我是否可以重新使用转换视图,或者我是否必须用当前项目的相应布局替换它.

理想情况下,它会是这样的:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    JSONObject currItem = mItems.getJSONObject(position);

    int layoutType;

    if (currItem.getBoolean("alternate"))
        layoutType = R.layout.list_item_b;
    else
        layoutType = R.layout.list_item_a;

    if (convertView == null || <convertView.resourceID> != layoutType ) {
        convertView = inflater.inflate(layoutType, null);

        //Finish setting up new View and its holder
    }
    else {
        //Get view holder for view reuse
    }

    //populate view with the required content

    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下,我根本不能重复使用视图,只是每次都需要扩展我需要的布局,但这看起来非常浪费.

android listview android-layout android-resources

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

Flask Admin ModelView在CREATE和EDIT之间的不同字段

在使用Flask Admin的Flask应用程序中,我希望能够在ModelView的Edit部分中定义不同于Create部分中的表单字段.

form_columns设置适用于"创建"和"编辑",但我似乎无法找到为每个部分提供不同列的方法.

python flask flask-admin

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

清除替换后由片段添加的工具栏菜单选项

我设置了3个“顶层”片段,每个片段都使用自己的子片段管理器来提供向下导航。这些顶级片段可以通过使用主要活动的支持片段管理器进行替换来切换。

这个顶级片段之一具有一个子片段,该子片段使用setHasOptionsMenu()和将菜单选项添加到工具栏/操作栏,onCreateOptionsMenu()并且效果很好。

现在我刚注意到的问题是:

添加新的子片段,并且隐藏带有菜单项的子片段(并将事务添加到顶级片段的后堆栈)时,菜单项消失。类似地,当通过撤消事务再次看到该片段时,菜单项将返回。这是期望的行为,似乎完全由Fragment框架处理。

但是,如果子片段可见(因此其菜单项出现在工具栏中),并且我切换了顶层片段,则菜单项仍保留在工具栏中

我本来希望菜单项被清除,因为不仅属于其的子片段已被转储,而且甚至其父片段(位于顶层片段中)也已被完全替换(甚至没有添加到后台,只是直接替换)。

invalidateOptionsMenu()认为只要传入的顶层片段已恢复,我就可以调用该活动,但是我觉得缺少一些东西来像在顶层片段中导航时那样自动处理。

android android-menu android-fragments android-actionbar android-toolbar

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