2009年的这个问题没有得到解答,这是互联网上极少数提到这个问题的问题之一.
问题:我想以与行处理相同的方式重新排序UITableView的各个部分(即通过拖动).
我看到这种方式的方式是:你打开桌面上的编辑,重新排序指标出现.当您开始拖动一个节标题(或一个单元格作为假节目标题,这是次优[1])时,所有常规单元格都会"消失",因此您只能移动各个部分(如果你更容易有超过几个部分).
LPRTableView似乎解决了这个问题,但在重新排序部分时正确设置非常棘手.我尝试了一整天并没有取得多大成功.另外,[1].
一个不那么好但可以接受的解决方案是在标题中有像⬆️⬇️这样的按钮(这里可以使用正确的标题),但它有点尴尬.
另一个不那么好但可以接受的解决方案是有一个额外的步骤(比如一个按钮),它会调出一个新的UITableView,只显示这些部分作为单元格,并允许在那里重新排序.工作正常,但创造的问题比解决的问题多[2].
我在文档中看不到任何内容,例如,在重新排序开始/结束时调用的钩子.或者更确切地说,有结束位但我看不到开头的那个.
建议?
[1]原则上,这允许行放在节标题之前,你必须手动捕获它,看起来很糟糕.
[2]我甚至会在哪里放置这样的控件,特别是如果我已经拥挤拥挤的UI,或者我想保持我的UI最小化?
我有一个nuxt-community/starter-template添加最少的项目。我的package.json看起来像这样
{
// ...
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"docker-image": "nuxt build && docker build -t unijobs-www-temp .",
"start": "nuxt start",
"generate": "NODE_ENV=production nuxt generate",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"precommit": "npm run lint"
},
"dependencies": {
"@fortawesome/fontawesome": "^1.1.8",
"@fortawesome/fontawesome-free-brands": "^5.0.13",
"@fortawesome/fontawesome-free-regular": "^5.0.13",
"@fortawesome/fontawesome-free-solid": "^5.0.13",
"@fortawesome/vue-fontawesome": "0.0.22",
"nuxt": "^1.0.0",
"nuxt-fontawesome": "^0.2.0",
"node-sass": "^4.9.0",
"sass-loader": "^7.0.2"
},
"devDependencies": {
"babel-eslint": "^8.2.1",
"eslint": "^4.15.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-vue": "^4.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
本地开发看起来不错,本地化build …
我有以下示例
version: '2'
services:
proxy:
container_name: proxy
hostname: proxy
image: nginx
ports:
- 80:80
- 443:443
volumes:
- proxy_conf:/etc/nginx
- proxy_htdocs:/usr/share/nginx/html
volumes:
proxy_conf: {}
proxy_htdocs: {}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.当我运行docker-compose up它时,创建那些命名的卷/var/lib/docker/volumes,一切都很好.但是,从主机,我只能/var/lib/docker以root身份访问,因为它root:root(有意义).我想知道是否有一种方法可以chown将主机的目录更加明智/安全(比如,我用来在主机上做大部分工作的相对无特权的用户),或者我是否只需要chown手动操作它们.我已经开始有许多脚本可以解决其他问题了,所以有一个额外的几行不会有太大的问题,但我真的想保持自编自动化最小化,如果我可以 - 减少愚蠢错误的机会.
顺便说一句,没有:如果我挂载主机目录而不是创建卷,它们会被覆盖,这意味着如果它们开始为空,它们将保持为空,并且我没有从容器内部获得默认配置(或其他任何内容).
额外点:我可以将卷移到更方便的位置吗?说,/home/myuser/myserverstuff/volumes?
在我的Android应用程序中,我有一个TreeMap我可以愉快地放入Bundle类似的东西
bundle.putSerializable("myHappyKey", myHappyTreeMap);
Run Code Online (Sandbox Code Playgroud)
但现在我将我的应用程序移植到Kotlin,Android Studio抱怨这Serializable!是必需的,但它正在找到一个Map.
我该如何处理?
编辑如果我将地图投射到一个警告,警告似乎就消失了Serializable.这是这样的吗?
编辑2我宣布并初始化myHappyTreeMap为
var myHappyTreeMap: Map<Int, Double> = mapOf()
Run Code Online (Sandbox Code Playgroud)
该文件说,地图使用初始化mapOf()可序列化.如果文档说的那么......
我正在使用EPSSampler在我的小iOS应用程序中播放一些笔记.除了通过振铃设置而不是系统音量设置控制声音之外,它的效果很好.问题是,如果铃声关闭,我的应用程序没有声音.
我能找到的最接近的是这个问题,但我无法将该解决方案完全转化为我的解决方案,因为我无法将其与EPSSampler的代码相匹配.任何见解?
编辑为了澄清,唯一专门处理音频的代码包含在EPSSampler类中,我的app只是实例,加载AUSampler预设,并调用EPSSampler中的音符播放方法,因此解决方案需要在EPSSampler中更改某些内容而不是在我的应用程序 - 这就是为什么我没有发布任何源代码.
我搜索高低,我不确定我出来的是处理这个问题的最佳方式(尽管它似乎是唯一的一个).
根据想要使用muliple笔尖来实现不同的iphone接口方向,我实现了相关的方法,一切似乎都运行良好.不幸的是,我必须处理UINavigationController,每个页面都必须支持纵向和横向模式,并在两种模式下重现相同的功能.这意味着如果用户在某个时刻决定从纵向切换到横向,整个应用程序应该允许他以他选择的模式在页面中来回导航.
显然,缺少的文档是如何处理这个问题.在我的视图中,我有许多带有附加showChild方法的按钮,用于执行导航.一切都适用于纵向模式(据我所知,这是默认模式).方法如下:
- (IBAction)showChild:(UITapGestureRecognizer *)sender {
UIView *view = [sender view];
PortraitViewController *nextPortraitViewcontroller = [[PortraitViewController alloc] initWithNibName:@"Portrait" bundle:nil];
[self.navigationController pushViewController:nextPortraitViewcontroller animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
但是当谈到景观模式时,我会得到喜忧参半的结果.LandscapeViewController类中的showChild:方法完全相同,它构建一个从PortraitViewController开始的视图,并将其推送到导航控制器.这一切看起来都很顺利,但是当我向后导航时,我得到的是前面的PortraitViewController,而不是景观,而且它的子视图都散布在周围,而不是我放在它们的位置.
现在的问题是:因为Apple似乎并不真正关心文档和最佳实践(假设整个机制远非理想,我可以说这来自人机交互设计和编程的背景)是什么correc - Apple这样做的方式?
landscape portrait uitabbarcontroller uinavigationcontroller ios
这与“ /sf/ask/2553434551/ ”有关。
我正在尝试设置一堆应该能够访问rwdocroot的 apache-php 容器,以及一个也应该能够访问rw同一目录的sftp 容器。因此,计划是创建一个共享卷,并将其挂载在两个容器中(对于 sftp 容器显然是在不同的地方)。我修改了官方的 php:7-apache 启动脚本,如下所示:
#!/bin/bash
set -e
### > My stuff
chmod g+s /var/www/html
chown -R :2048 /var/www/html
umask
umask 0002
umask
### < My stuff
# Apache gets grumpy about PID files pre-existing
rm -f /var/run/apache2/apache2.pid
exec apache2 -DFOREGROUND
Run Code Online (Sandbox Code Playgroud)
事实上,这两umask行确认夹心umask 0002运行正确。但是,当我bash进入容器并自己测试时,umask返回022,如果我创建任何文件,他们实际上获得了权限644。然后我可以手动umask 0002创建任何具有权限664(和775目录)的新文件。
对于这个用例,两个容器(sftp 和 apache)都可以在共享卷中读写是至关重要的。那么,我该怎么做呢?
我正在尝试启动Swift Vapor项目.按照这里的指南,似乎Homebrew是唯一的选择.我已经拥有MacPorts,并且在许多方面更喜欢自制软件.不幸的是没有Vapor的端口,所以我选择了Vapor人在这里描述的SPM安装.我之前在Kitura取得了成功,所以我想为什么不用Vapor.好吧,当你去建立你的项目时,你得到了
$ swift build
[... build stuff ...]
note: you may be able to install ctls using your system-packager:
brew install ctls
[... more build stuff ...]
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "shim.h"
^
[... more like that ...]
/Users/morpheu5/web/vizex/api/.build/checkouts/crypto.git-7980259129511365902/Sources/Crypto/Cipher/Cipher+Method.swift:1:8: error: could not build Objective-C module 'CTLS'
import CTLS
^
<unknown>:0: error: build had 1 command failures
error: exit(1):/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/morpheu5/web/vizex/api/.build/debug.yaml
Run Code Online (Sandbox Code Playgroud)
显然你真的需要这个ctls包,获得它的唯一方法似乎是通过Homebrew/Tap.
我真的不想要或不需要Homebrew,所以我该如何找到它的底部?我真的很想试试Vapor.
我有以下枚举
enum Properties: CustomStringConvertible {
case binaryOperation(BinaryOperationProperties),
brackets(BracketsProperties),
chemicalElement(ChemicalElementProperties),
differential(DifferentialProperties),
function(FunctionProperties),
number(NumberProperties),
particle(ParticleProperties),
relation(RelationProperties),
stateSymbol(StateSymbolProperties),
symbol(SymbolProperties)
}
Run Code Online (Sandbox Code Playgroud)
和所有的结构看起来像这样
struct BinaryOperationProperties: Decodable, CustomStringConvertible {
let operation: String
var description: String { return operation }
}
Run Code Online (Sandbox Code Playgroud)
那么如何使该枚举符合CustomStringConvertible?我尝试了一个简单的吸气剂,但显然它会调用自身,而我想改为调用特定的结构。
优点:这样定义的枚举是否有名称?
我有以下方法 Fragment
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
val fm = childFragmentManager
var prefsFragment: PrefsFragment? = fm.findFragmentByTag(tableName) as PrefsFragment?
if (prefsFragment == null) {
prefsFragment = PrefsFragment()
val ft = fm.beginTransaction()
ft.add(R.id.parameters_fragment_container, prefsFragment, tableName)
ft.commit()
fm.executePendingTransactions()
}
}
Run Code Online (Sandbox Code Playgroud)
我不得不说这是Java-> Kotlin自动翻译器对我以前的Java代码所做的事情(除了?我找到PrefsFragmentby标签的行末),所以它可能不完全是犹太人.我正在学习Kotlin.
现在,当我调用时executePendingTransactions(),我的应用程序崩溃抛出java.lang.IllegalArgumentException错误消息"参数指定为非null为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState".现在,是的,savedInstanceState实际上是null,但它与显然抛出异常的调用有什么关系呢?我确保没有其他值/变量为空,所以我相信错误信息......但为什么呢?
编辑这是堆栈跟踪,以及让我做恶梦的源代码
https://gist.github.com/Morpheu5/8ec7e2064f53679405769b43c64f2cb7
E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.morpheu5.bleedingscorecalculator, PID: 2685
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
at net.morpheu5.bleedingscorecalculator.CalculatorScreen$PrefsFragment.onCreatePreferences(CalculatorScreen.kt:0)
at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:223)
at android.support.v4.app.Fragment.performCreate(Fragment.java:2075)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1060)
at …Run Code Online (Sandbox Code Playgroud)