我正在制作一个在主视图中有2个按钮的程序;
一个叫做show,另一个叫hide,
当用户按下show butoon时,会将imageview添加到屏幕上
代码:
-(IBAction)show{
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
img.image = [UIImage imageNamed:@"icon.png"];
[self.view addSubview:img];
}
Run Code Online (Sandbox Code Playgroud)
当用户按下隐藏按钮时,我希望app隐藏刚刚添加的图像(img)
但...
当我使用
-(IBAction)add{
[img removeFromSuperView];
}
Run Code Online (Sandbox Code Playgroud)
Xcode说"img Undecleared"
编辑:有人说将对象定义为公共对象(@property),但问题是imageview只添加一次.但我希望每次用户按下Show按钮时添加新的imageview,
所以我用[[self subviews] objectAtIndex:xx] removeFromSuperview]方法来解决问题
我有一个名为"LoadingWindow"的相对较小的类,这个类有一个构造函数,它调用Initialize函数来设置框架.不是我测试了一些东西试图解决为什么它不会更新.在测试时我添加了"this.removeAll();" 到初始化方法的头部.事实证明,之后我无法添加任何内容.我添加的任何内容都不会显示.
这是一个略微修剪过的版本:
public class LoadingWindow extends JFrame{
public JPanel panel;
public JProgressBar bar;
private JLabel label;
public LoadingWindow()
{
this.Initialize();
}
public void Initialize()
{
this.removeAll();
this.setSize(300, 150);
panel = new JPanel(new BorderLayout());
bar = new JProgressBar(0,100);
label = new JLabel("Please remain calm, we're just loading...");
panel.add(bar,BorderLayout.CENTER);
panel.add(label,BorderLayout.SOUTH);
this.add(panel);
this.validate();
this.repaint();
this.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
窗口本身确实弹出正确,带有标题.然而,窗口本身是完全空白的.
我静态地实现这个类,以便其他四个对象可以在EditorPanel类中访问它.其定义为:
public static LoadingWindow loadingWindow;
Run Code Online (Sandbox Code Playgroud)
并在构造函数中初始化:
loadingWindow = new LoadingWindow();
Run Code Online (Sandbox Code Playgroud)
然后在函数中进行双重检查,如果它被隐藏,则使用它来显示它.
if(!EditorPanel.loadingWindow.isVisible()){EditorPanel.loadingWindow.Initialize();}
Run Code Online (Sandbox Code Playgroud)
总的来说,我对于为什么没有内容显示有点困惑,我对任何问题都很感兴趣,并愿意提供任何必要的信息.谷歌并没有提供很多,而且我发现我已经实施了"重绘和验证"的每个答案.
我期待着您的回音!
〜特拉维斯
我有一个如下所示的数据框rep:
> head(rep)
position chrom value label
[1,] "17408" "chr1" "0" "miRNA"
[2,] "17409" "chr1" "0" "miRNA"
[3,] "17410" "chr1" "0" "miRNA"
[4,] "17411" "chr1" "0" "miRNA"
[5,] "17412" "chr1" "0" "miRNA"
[6,] "17413" "chr1" "0" "miRNA"
Run Code Online (Sandbox Code Playgroud)
如何从所有元素中删除引号?
注意:rep$position并且rep$value应该是numerictype,rep$chrom并且rep$label应该是charactertype.
我在一个observable列表中有几个复制元素,我在TableView中用于复制/粘贴操作.表的名称是cpTable(c opy和p aste T able),用于存储复制的元素和粘贴存储在表中的元素.每次粘贴操作后,我想清除cpTable的内容,然后用Ctrl + C复制其他选定的项目.但我总是得到错误:
JavaFX应用程序线程"java.lang.UnsupportedOperationException:不支持.
在com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.remove(ReadOnlyUnbackedObservableList.java:246)
这是我的伪代码:
if (cpTable !=null) {
//first, get all copied items for removing all elements
ObservableList<String> copiedItems = cpTable.getItems();
int size = copiedItems.size();
// remove all elements
for(int i=0;i<size;i++) {
copiedItems.remove(i);
}
cpTable.setItems(copiedItems); //clear cpTable by setting an empty list
}
Run Code Online (Sandbox Code Playgroud)
这是一种复制所选项目内容并将其放入cpTable的方法
public TableView<String> copySelectionToClipboard(TableView<String> table) {
ObservableList<String> data = table.getSelectionModel().getSelectedItems();
TableView<String> tmp = new TableView<>();
tmp.setItems(data);
return tmp;
Run Code Online (Sandbox Code Playgroud)
}
按下Ctrl + C时,以下行将所有复制的项目放在cpTable中:
cpTable = copySelectionToClipboard( (TableView<String>) keyEvent.getSource()); …Run Code Online (Sandbox Code Playgroud) 我必须通过渲染id删除所有渲染实例.我试过下面的代码,但它没有用.
LayoutField layoutField = new LayoutField(item.Fields[Sitecore.FieldIDs.LayoutField]);
LayoutDefinition layoutDefinition = LayoutDefinition.Parse(layoutField.Value);
DeviceDefinition deviceDefinition = layoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());
//Create a RenderingDefinition and add the reference of sublayout or rendering
RenderingDefinition renderingDefinition = new RenderingDefinition();
renderingDefinition.ItemID = sublayoutId;
var d = layoutDefinition.GetDevice(deviceDefinition.ID.ToString());
d.Renderings.Remove(renderingDefinition);
item.Editing.BeginEdit();
layoutField.Value = layoutDefinition.ToXml();
item.Editing.EndEdit();
Run Code Online (Sandbox Code Playgroud)
我提到过:
我有几个目录,其中包含一些文件:
/test1/123.jpg
/test1/124.jpg
/test1/125.jpg
/test2/123.jpg
/test2/124.jpg
Run Code Online (Sandbox Code Playgroud)
我要删除所有除了/test1/124.jpg or /test2/124.jpg?
我知道目录名称和文件名.有没有办法在Linux环境中使用php而且可能unlink?
(我已经做了尽可能多的搜索基于"removeall where"或"removeall two argument predicate"的关键字,没有太多运气,所以这里去了)
问题是我有一个对象列表(类Wave)和一个关系函数如下: private bool AinB(Wave A,Wave B),如果A'在'B中,则返回true.另外AinB(x,y)为真保证AinB(y,x)是假的.
删除列表中对象'在列表中的另一个对象中的所有对象的最佳方法是什么?也就是说,在删除之后,列表应该只包含与列表中的任何其他对象"处于"关系中的对象?
理想情况下,这可以很容易地完成
listX.RemoveAll((x,y)=> AinB(x,y))但当然这在C#中是不合法的,也没有简单的方法来指定删除哪个,x或y.
我想过用索引循环遍历列表
int i = listX.Count - 1;
while (i>=0)
{
int r = listX.RemoveAll(X => AinB(X, listX[i]));
i = i - r - 1;
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我想知道是否有更好的方法使用直接linq代码来解决问题.谢谢.
我正在尝试创建一个sh来删除Xcode的deriveddate文件夹的内容.我写了这个,它转到所需的文件夹,并列出内容,但当我删除#并尝试删除它,比它说
"**line 1: =~/Library/Developer/Xcode/DerivedData/: No such file or directory
Desktop Downloads Movies Pictures clitools.dmg
Documents Library Music Public
override r--r--r-- dajkaferenc/staff for Desktop/Christmas Game update/.git/objects/00/8b8026f772525ccff6c3361ecc6f3eb43d0d82?** "
$DIR="~/Library/Developer/Xcode/DerivedData/"
cd $DIR
ls
#rm -r -- "$DIR"*
Run Code Online (Sandbox Code Playgroud) 我的问题是 - 如何通过将对象与第二个列表进行比较来从列表中删除对象.
List1 - 第一个列表包含电子邮件地址.
List2 - 第二个列表仅包含" @ domain.com "等格式的域
我想从第一个列表中删除包含第二个列表中的域的对象(电子邮件).
例如:
如果List1包含电子邮件地址:"email@domain.com",第二个List2包含"@ domain.com" - 那么我想删除此电子邮件(来自List1)
我试着用:
List1.removeIf(s -> s.equals (List2));
List1.removeAll(List2);
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有像我想的那样过滤我的列表.
我将非常感谢您的快速帮助
这是我的代码:
public class Person
{
public int age;
public int grade;
public string name;
}
List<Person> _list = new List<Person>();
// .... add lots of items
var personToRemove = new Person {age = 99, grade = 7, };
Run Code Online (Sandbox Code Playgroud)
如何编写一个命令,从_list所有人中删除具有相同age和grade值的所有人personToRemove.