标签: tableview

iPhone上默认的TableView部分标题背景颜色是什么?

我想自定义TableView节标题并保留默认背景颜色.我用 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)部分.我需要根据设备(iPad或iPhone)更改字体大小.为此,请调用next函数:

[UIColor colorWithHue:0.6饱和度:0.33亮度:0.69 alpha:0.6].

但我手动找到了这些值.

uitableview tableview

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

Javafx:重新排序TableView中的列

我有一个与TreeView相关联的TableView.每次选择TreeView中的节点时,TableView都会刷新不同的数据.

我能够对TableView中的任何列进行排序,只需按下相应的列标题即可.这很好.

但是:当我在树视图中选择一个不同的节点时,尽管列标题仍然显示为已排序.数据不是.

有没有办法以编程方式强制执行每次数据更改时用户所做的排序顺序?

tableview javafx-2

13
推荐指数
5
解决办法
3万
查看次数

更新TableView行外观

我有一些困难要改变一些TableView行的外观.该行应显示带有笔划和红色的文本.实际上,我可以用红色显示它,但仍然不能做中风.这是我用来改变行外观的css类:

.itemCancelado {
    -fx-strikethrough: true;
    -fx-text-fill: red;
}
Run Code Online (Sandbox Code Playgroud)

当用户将项目标记为已取消时,将添加此样式类:

public class ItemCanceladoCellFactory implements Callback<TableColumn, TableCell> {
    @Override
    public TableCell call(TableColumn tableColumn) {
        return new TableCell<ItemBean, Object>() {
            @Override
            public void updateItem(Object item, boolean empty) {
                super.updateItem(item, empty);
                setText(empty ? "" : getItem().toString());
                setGraphic(null);
                int indice=getIndex();
                ItemBean bean=null;
                if(indice<getTableView().getItems().size())
                    bean = getTableView().getItems().get(indice);
                if (bean != null && bean.isCancelado())
                    getStyleClass().add("itemCancelado");
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

此处还有另一个问题,标记为已取消的行仅在用户从可观察列表中添加或删除元素时更改颜色.有没有办法可以强制更新TableView?

编辑信息

我将ItemBean类更改为使用BooleanProperty并且它部分解决了:

public class ItemBean {
    ...
    private BooleanProperty cancelado = new SimpleBooleanProperty(false);
    ...
    public Boolean getCancelado() …
Run Code Online (Sandbox Code Playgroud)

java javafx tableview javafx-2

13
推荐指数
2
解决办法
9411
查看次数

每次查询PostgreSQL VIEWS时都会重新创建吗?

我正在创建一个具有一些复杂底层关联的Web应用程序.为了解决我遇到的几个问题,我创建了一个UNION View.可能有很多其他方法可以解决.

但我现在正在考虑我的设计的效率,我想知道每次查询时是否新创建了一个VIEW,或者它是否只创建一次,并保持更新.

详细说明,如果我有table_a(100条记录)和table_b(100条记录)并制作UNION视图,那么我创建了一个包含200条记录的视图.

每次我对View进行选择时,是否会发生这整个过程?

同样,显然每次更新基础表记录时视图都会更新,但是视图是否更新了这一条记录,还是从头开始重新创建整个视图?

戴尔

postgresql union database-design tableview

12
推荐指数
2
解决办法
6664
查看次数

使用fetchedResultController删除表视图中的行

在swype删除期间(此方法的大多数importatnt行):

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
 if (editingStyle == UITableViewCellEditingStyleDelete)
  {
    Table *deleteRow = [self.fetchedResultsController objectAtIndexPath:indexPath];
    [self.managedObjectContext deleteObject:deleteRow];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
  }   
}
Run Code Online (Sandbox Code Playgroud)

删除行时出现此错误:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:第2节中的行数无效.更新
后的现有部分中包含的行数(1)必须等于该行中包含的行数在更新(1)之前的部分,加上或减去从该部分插入或删除的行数(0插入,1删除)和加或减移入或移出该部分的行数(0移入,0移动)出)."

如果我评论最后一行代码([tableView deleteRowsAtIndexPaths:...])一切正常(但我必须刷新视图才能看到该行被删除).

怎么做得好......?

编辑:考虑@Kyr Dunenkoff回应我添加:

- (void)controller:(NSFetchedResultsController*)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath*)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath*)newIndexPath
{
    UITableView *tableV = [self tableView];
    switch(type) {
        case NSFetchedResultsChangeDelete:
            [tableV deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;
    }
}

- (void)controllerDidChangeContent:(NSFetchedResultsController*)controller
{
    [[self tableView] endUpdates];
}

- (void)controllerWillChangeContent:(NSFetchedResultsController*)controller
{
    [[self tableView] beginUpdates];
}
Run Code Online (Sandbox Code Playgroud)

但是这并没有改变崩溃和错误.它只是导致添加新行不再起作用.

objective-c tableview nsfetchedresultscontroller ios

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

SimpleStringProperty和SimpleIntegerProperty TableView JavaFX

所以我正在尝试学习如何使用JavaFx Tableview,并且我在本教程中讨论了:

Oracle tableview教程

在本教程中,他们表明,为了填充tableView,你必须用字符串填充它,但不是只需要将你格式化String为任何字符串SimpleStringProperty

我尝试没有格式,结果是没有任何信息显示!

另外我发现如果你想Integer在表中添加一个,你必须将它声明为SimpleIntegerProperty

现在我对JavaFx还不熟悉,但这是否意味着当我创建一个对象时,我必须格式化所有的整数和字符串以便能够填充我的TableView?它似乎相当愚蠢,但也许有更高的目的?还是有办法避免它?

java javafx tableview

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

JavaFX 2:如何以编程方式聚焦表行?

我试图以TableView编程方式选择/聚焦一行.

我可以选择一行,但它不会被渲染为聚焦(未突出显示).我已尝试过以下代码的多种组合,但似乎没有任何效果.

table.getSelectionModel().select(0);
table.focusModelProperty().get().focus(new TablePosition(table, 0, column));
table.requestFocus();
Run Code Online (Sandbox Code Playgroud)

是否可以通过编程方式突出显示行?

我使用的是JavaFX 2.2.21

java focus tableview javafx-2

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

如何根据运行时系统iOS版本覆盖方法?

我已经使用iOS实现了iOS 8的自动动态tableview单元格高度

self.tableView.rowHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)

对于不支持自动动态单元格高度的iOS 8之前的版本,我重写了heightForRowAtIndexPath方法.

这与我的做法类似:在UITableView中使用自动布局进行动态单元布局和可变行高

问题是如何编写使用iOS 8自动单元格高度的代码,但是为早期iOS版本覆盖heightForRowAtIndexPath.仅当iOS版本小于8时,我才会喜欢我的自定义heightForRowAtIndexPath方法.有关如何执行此操作的任何建议吗?

tableview tableviewcell ios ios8

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

TableView不会在焦点丢失事件上提交值

我想创建一个具有以下功能的表:

  • 在按键上编辑
  • 输入key =下一行
  • Tab键=下一列
  • 退出键=取消编辑

下面是实现这些功能的代码.值应该在焦点丢失时提交.问题:他们没有承诺.触发焦点更改事件,根据控制台输出值将是正确的,但最后表格单元格中的值是旧值.

有谁知道如何防止这种情况,你如何获得当前的EditingCell对象,以便我可以手动调用提交?毕竟,应该调用某种验证器,如果值不正确,则会阻止更改焦点.

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellEditEvent;
import javafx.scene.control.TablePosition;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import javafx.util.Callback;

public class TableViewInlineEditDemo extends Application {

    private final TableView<Person> table = new TableView<>();
    private final ObservableList<Person> data =
            FXCollections.observableArrayList(
            new Person("Jacob", "Smith", "jacob.smith@example.com"),
            new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
            new …
Run Code Online (Sandbox Code Playgroud)

javafx tableview

12
推荐指数
2
解决办法
9783
查看次数

iOS 11浮动TableView标题

让应用程序有多个部分,"扩展"时每个部分有几行,"折叠"时没有.每个部分都有一个部分标题,正在使用子类UITableViewHeaderFooterView等重用它们.到目前为止一切都很好.

然后在iOS 11中:

描述问题的屏幕截图

我已经使用了可视化调试器,并确认它是我的部分标题浮动.标题下方的所有行都正确显示,其他标题显示正常.

为了恢复理智,我抛弃了标题的所有重用逻辑,并以编程方式编写它们.彼此彼此.iOS 11之前的所有工作仍然在iOS 11中浮动.浮动的部分似乎每次都会改变,所以就是这样.

有任何想法吗?

tableview ios swift ios11

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