小编Yuc*_*ong的帖子

打开视图时,UITextView会部分向下滚动

我创建了一个UITextView并添加了大量文本.当我启动视图时,UITextView总是部分向下滚动.因为用户可以向上滚动,但它只是感觉很奇怪.

怎么了?我错过了任何明显的设置吗?

请参考下图.部分文字被删除.我从链接借用了这个文本.

在此输入图像描述

我开始了一个简单的单视图应用程序 这是我的viewDidLoad样子:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString* path = [[NSBundle mainBundle] pathForResource:@"license"
                                                     ofType:@"txt"];
    NSString* terms = [NSString stringWithContentsOfFile:path
                                                encoding:NSUTF8StringEncoding
                                                   error:nil];
    self.textField.text = terms;
}
Run Code Online (Sandbox Code Playgroud)

这是我的故事板:

在此输入图像描述

这是手动向上滚动到顶部的方式.

在此输入图像描述

objective-c ios

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

计算立方体的横截面

如下图所示,立方体的横截面可以是:

  1. 三角形
  2. 长方形
  3. 五角大楼(不是DREW)
  4. 六边形

假设我们得到一个六边形.我们可以得到十字平面与立方体两侧的交点,并获得六边形ABCDEF.现在的问题是:我们如何交点排序,以便六边形ABCDEF可以分成4个三角形ABC,ACD,ADEAEF.

在此输入图像描述


请注意,积分的顺序非常重要,因为如果订单错误,我将无法将其绘制出来.我想将它们分成三角形,因为我想在OpenGL中将它们可视化.


非常感谢@ HugoRune的回答.这里有一些我希望与你们分享的结果.左图是3D体积的横截面(从任意角度).右图是3D体积的最大强度投影的结果. 盒子的横截面(真实数据)

sorting algorithm

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

命令行警告D9002:忽略未知选项'-std = c ++ 11'

在我的CMakeList.txt文件中,我有以下内容以添加c ++ 11支持:

set(CMAKE_CXX_FLAGS"$ {CMAKE_CXX_FLAGS} -std = c ++ 11")

这在使用Xcode的Mac下工作正常.但是,我从Visual Studio收到以下警告消息.任何的想法?

命令行警告D9002:忽略未知选项'-std = c ++ 0x'

除编译警告外,程序编译运行没有问题.我正在使用VS2013.如果我删除该单个"设置标志"行,则警告消失.

cmake compiler-warnings c++11 visual-studio-2013

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

在Objective-C中重新定义为不同类型的符号

我们上课了WayPoint.但在某些时候,我们决定将课程重命名为Placemark.但是,我们并不真的想要更改类的名称,因为它会导致对现有代码进行大量修改.因此,我typedef在头文件的底部添加了一行,并Placemark从此开始愉快地使用任何新代码.

@interface WayPoint : _WayPoint
@end
typedef WayPoint Placemark;
Run Code Online (Sandbox Code Playgroud)

但仍有一件事我不明白.如果我尝试在其他一些头文件中使用前向定义.我只能用:

@class WayPoint;
Run Code Online (Sandbox Code Playgroud)

如果我使用:

@class Placemark;
Run Code Online (Sandbox Code Playgroud)

我会收到错误消息:

将"地标"重新定义为一种不同的符号

为什么?

objective-c

7
推荐指数
2
解决办法
6589
查看次数

Swift iOS - 标签集合视图

我正在编写我的第一个 iOS 应用程序,我只想回答最广为人知的解决方案是什么?这是简单的标签集合。我已经看过互联网,但我什么也没找到。我认为最好的方法是制作我自己的按钮结构?

这是我想要实现的目标:

Swift 标签集合视图

tags ios swift

7
推荐指数
2
解决办法
1万
查看次数

禁用或隐藏 C++ 中的某些父类函数

我注意到可能有不同的方法来禁用或隐藏从父类继承的一些类成员函数。

例如,给定以下基类:

class Foo {
public: 
    void funcA() {}
};
Run Code Online (Sandbox Code Playgroud)

选项1

class Bar : public Foo {
private:
     Foo::funcA;
};
Run Code Online (Sandbox Code Playgroud)

(编辑:我注意到稍后选项 1将出现错误clang:“ISO C++11 不允许访问声明;请改用 using 声明”)

选项2

class Bar : public Foo {
private:
     using Foo::funcA; 
};
Run Code Online (Sandbox Code Playgroud)

选项3

class Bar : public Foo {
public:
    void funcA() = delete; 
};
Run Code Online (Sandbox Code Playgroud)

哪种方法更好?或者说它们是一样的吗?


在尝试执行此操作之前,请阅读@JeffCoffin 等人下面的评论。阿尔:

事实上,您想要禁用或隐藏父类中的某些内容往往表明您可能不应该将其用作父类

c++

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

如何在Shell中的多行中定义数组

是否可以在shell脚本文件中的多行中定义数组?我试过这样的事情:

foo.sh

#!/usr/bin/env bash

messages=(
    "Hello"
    "World"
)

echo $messages
Run Code Online (Sandbox Code Playgroud)

但是,输出只有第一行"Hello",而不是第二行"Word".

$ sh foo.sh
Hello
Run Code Online (Sandbox Code Playgroud)

更令我困惑的是,如果我复制foo.sh的内容并将其直接粘贴到终端中,那么事情就像我预期的那样:

$ messages=(
    "Hello"
    "World"
)

echo $messages
Hello World
Run Code Online (Sandbox Code Playgroud)

谁知道为什么?

macos shell

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

使用sbt shell进行构建和导入

IntelliJ中有此选项.它有什么作用?什么时候应该启用它,什么时候不启用?

[]使用sbt shell进行构建和导入(需要sbt 0.13.5+)

在此输入图像描述

intellij-idea sbt

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

如何使用 Clap 提供多行帮助消息?

有没有办法让 clap 的帮助消息中出现换行符?

我尝试了多行注释,也尝试了\n混合插入。但两者都不起作用。

#[derive(Parser, Debug)]
#[clap(author, version, about)]
struct Args {
    /// The input filename.\n
    /// Hello world!
    #[clap(short, long, value_parser)]
    input: String,
}
Run Code Online (Sandbox Code Playgroud)

输出:

USAGE:
    ascii_tree --input <INPUT>

OPTIONS:
    -h, --help             Print help information
    -i, --input <INPUT>    The input filename.\n Hello world!
    -V, --version          Print version information
Run Code Online (Sandbox Code Playgroud)

有没有办法实现以下目标?

#[derive(Parser, Debug)]
#[clap(author, version, about)]
struct Args {
    /// The input filename.\n
    /// Hello world!
    #[clap(short, long, value_parser)]
    input: String,
}
Run Code Online (Sandbox Code Playgroud)

rust clap

7
推荐指数
2
解决办法
2127
查看次数

从flutter集成测试中获取当前项目目录

有没有办法在flutter集成测试中获取当前项目目录?这是一个基本测试设置的示例。

import 'dart:io';

import 'package:flutter_driver/driver_extension.dart';
import 'package:ivori/main.dart' as app;
import 'package:glob/glob.dart';

void main() {
  // This line enables the extension.
  enableFlutterDriverExtension();

  print("Where the working directory? ${Directory.current}");
  print("What's under the current directory? ${Glob("*").listSync()}");

  // Call the `main()` function of the app, or call `runApp` with
  // any widget you are interested in testing.
  app.main();
}
Run Code Online (Sandbox Code Playgroud)

中间两行添加的行Directory.currentGlob("*").listSync()都是尝试检查/显示当前工作目录。上面的输出是:

$ flutter drive --target=test_driver/app.dart        
Changing current working directory to: /Users/yuchen/Documents/MyDemoApp
Using device iPhone SE (2nd generation).
Starting application: test_driver/app.dart
...
... …
Run Code Online (Sandbox Code Playgroud)

flutter

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